Created
November 3, 2020 21:20
-
-
Save mcyenikoylu/ca55eb4e4fa8b4b5d51895068e94db4d to your computer and use it in GitHub Desktop.
ASP.NET MVC API Azure SQL Database
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.Linq; | |
using System.Net; | |
using System.Net.Http; | |
using System.Web.Http; | |
namespace MobilAPIs.Controllers | |
{ | |
[MobilAppTokenKontrol(OgrenciToken = true, PersonelToken = false)] | |
public class OgrController : ApiController | |
{ | |
/// <summary> | |
/// | |
/// </summary> | |
/// <param name="m"></param> | |
/// <returns></returns> | |
public List<DersProgramDTO> DersProgrami([FromBody] OgrenciBilgiParametreleriDTO m) | |
{ | |
var db = new EduContext.DatabaseContext(); | |
var dersliklerim = (from x in db.OgrenciKayitUrun | |
join d in db.Derslik on x.DerslikID equals d.ID | |
where x.OgrenciKayit.OgrenciID == m.OgrenciID && x.OgrenciKayit.SezonID == m.SezonID | |
select new | |
{ | |
d.OkulID, | |
DerslikAd = d.Ad, | |
SinifAd = d.Sinif.Ad, | |
x.DerslikID | |
}).ToList(); | |
if (dersliklerim.Count() == 0) | |
return new List<DersProgramDTO>(); | |
var aktifOkulID = dersliklerim.Select(x => x.OkulID).DefaultIfEmpty(0).FirstOrDefault(); | |
var derslikIDs = dersliklerim.Select(x => x.DerslikID).ToList(); | |
var dersProgramlarim = (from dd in db.DersProgramDetay | |
join dp in db.DersProgram on dd.DersProgramID equals dp.ID | |
where derslikIDs.Contains(dd.DerslikID) && dp.isAktif && !dp.isSilindi | |
select dd.DersProgramID).Distinct().ToList(); | |
var dayOfWeek = (int)DateTime.Now.DayOfWeek; | |
if (dayOfWeek == 0) { dayOfWeek = 7; } | |
var gunList = new List<IDveAdDTO>() | |
{ | |
new IDveAdDTO(){ID=1, Ad="Pazartesi"}, | |
new IDveAdDTO(){ID=2, Ad="Salı"}, | |
new IDveAdDTO(){ID=3, Ad="Çarşamba"}, | |
new IDveAdDTO(){ID=4, Ad="Perşembe"}, | |
new IDveAdDTO(){ID=5, Ad="Cuma"}, | |
new IDveAdDTO(){ID=6, Ad="Cumartesi"}, | |
new IDveAdDTO(){ID=7, Ad="Pazar"}, | |
}; | |
var dpList = new List<DersProgramDTO>(); | |
foreach (var derp in dersProgramlarim) | |
{ | |
var dp = new DersProgramDTO(); | |
dp.Gunler = gunList; | |
dp.ProgramAdi = db.DersProgram.Where(x => x.ID == derp).Select(x => x.Ad).DefaultIfEmpty("").FirstOrDefault(); | |
var programAyarlari = db.DersProgramAyar.Where(x => x.DersProgramID == derp).ToList(); | |
dp.DersSayisi = programAyarlari.Where(x => x.Anahtar == DersProgramAyar.AyarAnahtarlar.DersSayisi).Select(x => x.Deger.ToInt32()).DefaultIfEmpty(0).Max(); | |
dp.DersSuresi = programAyarlari.Where(x => x.Anahtar == DersProgramAyar.AyarAnahtarlar.DersSuresiDk).Select(x => x.Deger).DefaultIfEmpty("").FirstOrDefault().ToSadeceNumaralar().ToInt32(); | |
dp.TeneffusSr = programAyarlari.Where(x => x.Anahtar == DersProgramAyar.AyarAnahtarlar.TeneffusSuresiDk).Select(x => x.Deger).DefaultIfEmpty("").FirstOrDefault().ToSadeceNumaralar().ToInt32(); | |
dp.BaslamaSaatiStr = programAyarlari.Where(x => x.Anahtar == DersProgramAyar.AyarAnahtarlar.DersBaslamaSaati).Select(x => x.Deger).DefaultIfEmpty(":").FirstOrDefault(); | |
if (dp.BaslamaSaatiStr.Length < 5) { dp.BaslamaSaatiStr = "00:00"; } | |
dp.BaslamaSaati = DateTime.ParseExact(dp.BaslamaSaatiStr, "HH:mm", System.Globalization.CultureInfo.CurrentCulture); | |
dp.Dersler = (from dd in db.DersProgramDetay | |
join dpr in db.DersProgram on dd.DersProgramID equals dpr.ID | |
join br in db.Brans on dd.BransID equals br.ID | |
join dr in db.Derslik on dd.DerslikID equals dr.ID | |
join pr in db.Personel on dd.PersonelID equals pr.ID | |
where dpr.OkulID == aktifOkulID | |
&& dpr.SezonID == m.SezonID | |
&& dpr.isAktif | |
&& !dpr.isSilindi | |
&& dd.DersProgramID == derp | |
&& derslikIDs.Contains(dr.ID) | |
select new EduDTO.GunuDersiDTO() | |
{ | |
Gun = dd.Gun, | |
DersNo = dd.DersNo, | |
BransAd = br.Ad, | |
DerslikAd = dr.Ad, | |
OgretmenAd = pr.AdSoyad | |
}).ToList(); | |
dpList.Add(dp); | |
} | |
return dpList; | |
} | |
/// <summary> | |
/// | |
/// </summary> | |
/// <param name="m"></param> | |
/// <returns> | |
/// </returns> | |
public List<OgrenciDegerlendirmeDTO> Degerlendirmeler([FromBody] OgrenciBilgiParametreleriDTO m) | |
{ | |
var db = new DatabaseContext(); | |
var notlar = (from dn in db.OgrenciDegerlendirmeNotu | |
join br in db.Brans on dn.BransID equals br.ID into br1 | |
from br in br1.DefaultIfEmpty() | |
join pe in db.Personel on dn.OgretmenID equals pe.ID into pe1 | |
from pe in pe1.DefaultIfEmpty() | |
where dn.OgrenciID == m.OgrenciID && dn.SezonID == m.SezonID && dn.isVeliGorebilir | |
select new OgrenciDegerlendirmeDTO() | |
{ | |
ID = dn.ID, | |
TarihGunDate = dn.Tarih, | |
Baslik = dn.Baslik, | |
BransAd = br == null ? "" : br.Ad, | |
DegerlendirmeNotTipID = dn.DegerlendirmeNotTipID, | |
Ogretmen = pe == null ? "" : pe.AdSoyad | |
}).OrderBy(x => x.TarihGunDate).ToList(); | |
notlar.ForEach(x => x.TarihGunStr = x.TarihGunDate.ToString("dd.MMM.yyyy ddd")); | |
return notlar; | |
} | |
/// <summary> | |
/// | |
/// </summary> | |
/// <returns></returns> | |
public JsonDTO DegerlendirmeNotuGoster([FromBody] OgrenciDegerlendirmeNotuDetayDTO m) | |
{ | |
var db = new DatabaseContext(); | |
var notu = (from x in db.OgrenciDegerlendirmeNotu | |
where x.SezonID == m.SezonID && x.OgrenciID == m.OgrenciID && x.ID == m.ID | |
select x.Aciklama).DefaultIfEmpty("").FirstOrDefault(); | |
return new JsonDTO(true, notu, 0); | |
} | |
/// <summary> | |
/// | |
/// </summary> | |
/// <param name="m"></param> | |
/// <returns> | |
/// YoklamaTipID = 1:Ders, 2:Etüt | |
/// </returns> | |
public List<OgrenciYoklamaDTO> Yoklama([FromBody] OgrenciBilgiParametreleriDTO m) | |
{ | |
var db = new DatabaseContext(); | |
var yoklar = (from yo in db.YoklamaOgrenci | |
join br in db.Brans on yo.YoklamaDerslik.BransID equals br.ID into br1 | |
from br in br1.DefaultIfEmpty() | |
join pe in db.Personel on yo.YoklamaDerslik.PersonelID equals pe.ID into pe1 | |
from pe in pe1.DefaultIfEmpty() | |
where yo.OgrenciID == m.OgrenciID && yo.YoklamaDerslik.Derslik.SezonID == m.SezonID | |
select new OgrenciYoklamaDTO | |
{ | |
TarihGunDate = yo.YoklamaDerslik.TarihGun, | |
DerslikAd = yo.YoklamaDerslik.Derslik.Ad, | |
DersNo = yo.YoklamaDerslik.DersNo, | |
BransAd = br == null ? "" : br.Ad, | |
YoklamaTipID = yo.YoklamaDerslik.YoklamaTipID, | |
Ogretmen = pe == null ? "" : pe.AdSoyad, | |
YoklamaDurumID = yo.YoklamaDurumID | |
}).ToList() | |
.OrderBy(x => x.TarihGunDate) | |
.ThenBy(x => x.DersNo) | |
.ToList(); | |
yoklar.ForEach(x => x.TarihGunStr = x.TarihGunDate.ToString("dd.MMM.yyyy ddd")); | |
return yoklar; | |
} | |
/// <summary> | |
/// | |
/// </summary> | |
/// <param name="m"></param> | |
/// <returns> | |
/// </returns> | |
public List<OgrenciRozetDTO> Rozetler([FromBody] OgrenciBilgiParametreleriDTO m) | |
{ | |
var db = new DatabaseContext(); | |
var liste = (from r in db.RozetOgrenci | |
join z in db.Rozet on r.RozetID equals z.ID | |
join o in db.Ogrenci on r.OgrenciID equals o.ID | |
join p in db.Personel on r.OgretmenID equals p.ID | |
join b in db.Brans on r.BransID equals b.ID into b1 | |
from b in b1.DefaultIfEmpty() | |
where r.OgrenciID == m.OgrenciID && r.SezonID == m.SezonID | |
select new OgrenciRozetDTO() | |
{ | |
TarihGunDate = r.Tarih, | |
BransAd = b == null ? "" : b.Ad, | |
Ogretmen = p.AdSoyad, | |
RozetAd = z.Ad, | |
ikonUrl = z.ikonUrl, | |
Puan = z.Puan, | |
Aciklama = z.Aciklama, | |
}).ToList() | |
.OrderBy(x => x.TarihGunDate) | |
.ToList(); | |
liste.ForEach(x => x.TarihGunStr = x.TarihGunDate.ToString("dd.MMM.yyyy ddd")); | |
return liste; | |
} | |
/// <summary> | |
/// | |
/// </summary> | |
/// <param name="m"></param> | |
/// <returns> | |
/// </returns> | |
public List<OgrenciTakipDTO> Takipler([FromBody] OgrenciBilgiParametreleriDTO m) | |
{ | |
var db = new DatabaseContext(); | |
var liste = (from ff in db.TakipData | |
join f in db.TakipTanim on ff.TakipTanimID equals f.ID | |
join p in db.Personel on ff.PersonelID equals p.ID | |
where f.SezonID == m.SezonID && ff.OgrenciID == m.OgrenciID && f.isVeliyeGoster | |
group new { ff, p, f } by new | |
{ | |
Ogretmen = p.AdSoyad, | |
ff.TakipTanimID, | |
TakipTanimAd = f.Ad, | |
ff.PersonelID, | |
ff.Tarih, | |
} into k | |
select new OgrenciTakipDTO | |
{ | |
Ogretmen = k.Key.Ogretmen, | |
TakipTanimID = k.Key.TakipTanimID, | |
TakipTanimAd = k.Key.TakipTanimAd, | |
TarihGunDate = k.Key.Tarih, | |
OgretmenID = k.Key.PersonelID | |
}).ToList().OrderBy(x => x.TarihGunDate).ToList(); | |
liste.ForEach(x => { | |
x.TarihGunStr = x.TarihGunDate.ToString("dd.MMM.yyyy ddd"); | |
x.GunDDMMYYYY = x.TarihGunDate.ToString("ddMMyyyy"); | |
}); | |
return liste; | |
} | |
/// <summary> | |
/// | |
/// </summary> | |
/// <param name="m"></param> | |
/// <param name="TakipTanimID"></param> | |
/// <param name="OgretmenID"></param> | |
/// <param name="gunDDMMYYYY"></param> | |
/// <returns> | |
/// </returns> | |
public JsonDTO TakipFormVerisiModal([FromBody] TakipVerisiTalepDTO m) | |
{ | |
var tarih = DateTime.ParseExact(m.GunDDMMYYYY, "ddMMyyyy", System.Globalization.CultureInfo.CurrentCulture); | |
if (m.GunDDMMYYYY == "" || tarih.Year < 2000) | |
{ | |
tarih = DateTime.Now.Date; | |
} | |
var db = new DatabaseContext(); | |
var data = (from td in db.TakipData | |
join ts in db.TakipSecenek on td.TakipSecenekID equals ts.ID | |
where td.OgrenciID == m.OgrenciID && td.PersonelID == m.OgretmenID && td.TakipTanimID == m.TakipTanimID && td.Tarih == tarih | |
orderby ts.Sira ascending | |
select new | |
{ | |
td.Deger, | |
ts.TakipSecenekTip.HtmlTip, | |
ts.Ad, | |
}).ToList(); | |
if (data == null || data.Count() == 0) | |
{ | |
return new JsonDTO(false, "Kullanılabilir form verisi bulunamadı!", 0); | |
} | |
var OgretmenAd = db.Personel.Where(x => x.ID == m.OgretmenID).Select(x => x.AdSoyad).DefaultIfEmpty("...").FirstOrDefault(); | |
var TakipTanimAd = db.TakipTanim.Where(x => x.ID == m.TakipTanimID).Select(x => x.Ad).DefaultIfEmpty("...").FirstOrDefault(); | |
return new JsonDTO(true, new | |
{ | |
TakipTanimAd, | |
OgretmenAd, | |
FormAlanlar = data | |
}, 0); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment