public async Task <JsonResult> IsOnay(int id) { try { var arizaRepo = new ArizaRepository(); var ariza = arizaRepo.GetAll().FirstOrDefault(x => x.Id == id); var userStore = NewUserStore(); var teknisyen = await userStore.FindByIdAsync(ariza.TeknisyenId); if (teknisyen == null) { return(Json(new ResponseData() { message = "Kullanıcı bulunamadı", success = false })); } if (teknisyen.TeknisyenDurumu == TeknisyenDurumu.Atandı) { return(Json(new ResponseData() { message = "Üzerinize kayıtlı bir iş var", success = false })); } else { ariza.ArizaBaslangicTarihi = DateTime.Now; teknisyen.TeknisyenDurumu = TeknisyenDurumu.Atandı; await userStore.UpdateAsync(teknisyen); userStore.Context.SaveChanges(); ariza.Teknisyen.TeknisyenDurumu = teknisyen.TeknisyenDurumu; var arizaLogRepo = new ArizaLogRepository(); var log = new ArizaLog() { ArizaId = ariza.Id, Aciklama = "Teknisyen atanmıştır", Zaman = DateTime.Now }; arizaLogRepo.Insert(log); //ariza.ArizaLoglar.Add(log); arizaRepo.Update(ariza); } return(Json(new ResponseData() { message = "İş onayı başarılı", success = true, })); } catch (Exception ex) { return(Json(new ResponseData() { message = $"Bir hata oluştu: {ex.Message}", success = false })); } }
public async Task <JsonResult> Yolda(int id) { try { var arizaRepo = new ArizaRepository(); var ariza = arizaRepo.GetAll().FirstOrDefault(x => x.Id == id); var userStore = NewUserStore(); var teknisyen = await userStore.FindByIdAsync(ariza.TeknisyenId); if (teknisyen == null) { return(Json(new ResponseData() { message = "Kullanıcı bulunamadı", success = false })); } teknisyen.TeknisyenDurumu = TeknisyenDurumu.Yolda; await userStore.UpdateAsync(teknisyen); userStore.Context.SaveChanges(); ariza.Teknisyen.TeknisyenDurumu = teknisyen.TeknisyenDurumu; var arizaLogRepo = new ArizaLogRepository(); var log = new ArizaLog() { ArizaId = ariza.Id, Aciklama = "Teknisyen yola çıktı.", Zaman = DateTime.Now }; arizaLogRepo.Insert(log); //ariza.ArizaLoglar.Add(log); arizaRepo.Update(ariza); return(Json(new ResponseData() { message = "İşlem başarılı", success = true })); } catch (Exception ex) { return(Json(new ResponseData() { message = $"Bir hata oluştu: {ex.Message}", success = false })); } }
public async Task <JsonResult> IslemTamam(int id) { try { var arizaRepo = new ArizaRepository(); var ariza = arizaRepo.GetAll().FirstOrDefault(x => x.Id == id); var userStore = NewUserStore(); var teknisyen = await userStore.FindByIdAsync(ariza.TeknisyenId); var musteri = await userStore.FindByIdAsync(ariza.MusteriId); if (teknisyen == null) { return(Json(new ResponseData() { message = "Kullanıcı bulunamadı", success = false })); } ariza.ArizaBitisTarihi = DateTime.Now; teknisyen.TeknisyenDurumu = TeknisyenDurumu.Bosta; await userStore.UpdateAsync(teknisyen); userStore.Context.SaveChanges(); ariza.ArizaYapildiMi = true; var arizaLogRepo = new ArizaLogRepository(); var log = new ArizaLog() { ArizaId = ariza.Id, Aciklama = "Arıza çözümlenmiştir.", Zaman = ariza.ArizaBitisTarihi.Value }; arizaLogRepo.Insert(log); //ariza.ArizaLoglar.Add(log); ariza.Teknisyen.TeknisyenDurumu = teknisyen.TeknisyenDurumu; arizaRepo.Update(ariza); var anket = new Anket(); var anketRepo = new AnketRepository(); anketRepo.Insert(anket); ariza.AnketId = anket.Id; arizaRepo.Update(ariza); string SiteUrl = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host + (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port); var emailService = new EmailService(); var body = $"Merhaba <b>{musteri.Name} {musteri.Surname}</b><br><br> <a href='{SiteUrl}/musteri/anket?code={ariza.AnketId}' >Anket Linki </a> "; await emailService.SendAsync(new IdentityMessage() { Body = body, Subject = "Memnuniyet Anketi" }, musteri.Email); var data = new ArizaViewModel { ArizaYapildiMi = ariza.ArizaYapildiMi, Id = ariza.Id, ArizaBitisTarihi = ariza.ArizaBitisTarihi ?? DateTime.Now, TeknisyenDurumu = ariza.Teknisyen.TeknisyenDurumu, Aciklama = ariza.Aciklama, Adres = ariza.Adres, MarkaAdi = ariza.MarkaAdi, ModelAdi = ariza.ModelAdi, MusteriId = ariza.MusteriId, MusteriAdi = ariza.Musteri.Name + " " + ariza.Musteri.Surname, ArizaOlusturmaTarihi = ariza.ArizaOlusturmaTarihi, ArizaOnaylandiMi = ariza.ArizaOnaylandiMi, TeknisyenId = ariza.TeknisyenId, }; return(Json(new ResponseData() { message = "İşlem başarılı", success = true, data = data })); } catch (Exception ex) { return(Json(new ResponseData() { message = $"Bir hata oluştu: {ex.Message}", success = false })); } }
public async Task <JsonResult> Guncelle(ArizaViewModel data) { try { if (data == null) { return(Json(new ResponseData() { message = "Arıza kaydı bulunamadı", success = false })); } var arizaRepo = new ArizaRepository(); var ariza = arizaRepo.GetById(data.Id); ariza.TeknisyenId = data.TeknisyenId; ariza.ArizaOnaylandiMi = data.ArizaOnaylandiMi; if (data.ArizaOnaylandiMi) { if (data.TeknisyenId == null || data.TeknisyenId == "0") { return(Json(new ResponseData() { message = "Lütfen teknisyen seçiniz", success = false })); } var userStore = NewUserStore(); var teknisyen = await userStore.FindByIdAsync(data.TeknisyenId); teknisyen.TeknisyenDurumu = TeknisyenDurumu.Beklemede; await userStore.UpdateAsync(teknisyen); userStore.Context.SaveChanges(); arizaRepo.Update(ariza); var arizaLogRepo = new ArizaLogRepository(); var log = new ArizaLog() { ArizaId = ariza.Id, Aciklama = "Arızanız onaylanmıştır", Zaman = DateTime.Now }; arizaLogRepo.Insert(log); //ariza.ArizaLoglar.Add(log); arizaRepo.Update(ariza); string SiteUrl = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host + (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.Port); var user = await NewUserStore().FindByIdAsync(ariza.TeknisyenId); // Bu satır silinecek var userM = NewUserManager().FindById(ariza.MusteriId); var emailServiceM = new EmailService(); var bodyM = $"Merhaba <b>{userM.Name} {userM.Surname}</b><br>Arızanız onaylanmıştır. Sizinle en kısa sürede iletişime geçilecektir.<br> "; emailServiceM.Send(new IdentityMessage() { Body = bodyM, Subject = "Arıza Onay" }, userM.Email); return(Json(new ResponseData() { message = "Güncelleme başarılı", success = true })); } else { return(Json(new ResponseData() { message = "Ariza onaylanmadı", success = false })); } } catch (Exception ex) { return(Json(new ResponseData() { message = $"Bir hata oluştu {ex.Message}", success = false })); } }