//Burada Kaldık Sayfa geliyor fakat enum olarak sadece arızalarla alakalı bir enum yapmak gerekiyor. Çalışan enumlarda atanmadı vs seçebiliyor. public ActionResult TeknisyenArizaRapor(int id) { try { var ariza = new ArizaKayitRepo().GetById(id); var data = Mapper.Map <ArizaViewModel>(ariza); data.ArızaPath = new FotografRepo().GetAll(z => z.ArizaId == id).Select(u => u.Yol).ToList(); //ilgili log kayıtları getiriyor. o arizaya ait. var Logs = new ArizaLogRepo().GetAll() .Where(u => u.ArızaId == id) .OrderByDescending(u => u.CreatedDate) .ToList(); data.ArizaLogs.Clear(); //data.ArizaLogViewModels.Clear(); //gelen logkayitlarini mapper ile view model e çevirip. arizaviewmoedeki alana ekliyoruz. //BURADA VİEWMODEL YAPAMADIK NEDEN BAK SOR ... foreach (ArizaLOG log in Logs) { data.ArizaLogs.Add(log); } return(View(data)); } catch (Exception ex) { TempData["Model"] = new ErrorViewModel() { Text = $"Bir hata oluştu {ex.Message}", ActionName = "Index", ControllerName = "Home", ErrorCode = 500 }; return(RedirectToAction("Error", "Home")); } }
public ActionResult ArizaDurumGor(int id) { try { var ariza = new ArizaKayitRepo().GetById(id); var data = Mapper.Map <ArizaViewModel>(ariza); data.ArızaPath = new FotografRepo().GetAll(z => z.ArizaId == id).Select(u => u.Yol).ToList(); //ilgili log kayıtları getiriyor. o arizaya ait. var Logs = new ArizaLogRepo().GetAll() .Where(u => u.ArızaId == id) .OrderByDescending(u => u.CreatedDate) .ToList(); data.ArizaLogs.Clear(); foreach (ArizaLOG log in Logs) { data.ArizaLogs.Add(log); } return(View(data)); } catch (Exception ex) { TempData["Model"] = new ErrorViewModel() { Text = $"Bir hata oluştu {ex.Message}", ActionName = "Index", ControllerName = "Home", ErrorCode = 500 }; return(RedirectToAction("Error", "Home")); } }
//TODO TEknisyen atamayı burada yap public async Task <IHttpActionResult> TeknisyenAta(ArizaViewModel model) { try { var ariza = new ArizaKayitRepo().GetById(model.ArizaId); ariza.TeknisyenId = model.UserId; ariza.ArizaDurumu = ArizaDurum.TeknisyenAtandi; ariza.TeknisyenDurumu = TeknisyenDurumu.Calısıyor; ariza.TeknisyenAtandigiTarih = DateTime.Now; var responce = new ArizaKayitRepo().Update(ariza); if (responce < 1) { return(Ok(new ResponseData { message = $"Ariza Kayıt Update Edilemedi.", success = false, })); } var opId = HttpContext.Current.User.Identity.GetUserId(); var teknisyen = NewUserManager().FindById(ariza.TeknisyenId); var userOperator = NewUserManager().FindById(opId); var musteri = NewUserManager().FindById(ariza.MusteriId); var OperatorLog = new ArizaLOG { CreatedDate = DateTime.Now, ArızaId = model.ArizaId, Aciklama = $"Ariza'nız {userOperator.Name} {userOperator.Surname} isimli Operator Tarafından {teknisyen.Name} {teknisyen.Surname} Teknisyene Bildirilmiştir.", YapanınRolu = IdentityRoles.Teknisyen }; var Logresponce = new ArizaLogRepo().Insert(OperatorLog); if (Logresponce < 1) { return(Ok(new ResponseData { message = $"Log kayıt Eklenemedi", success = false, })); } string SiteUrl = Request.RequestUri.Scheme + Uri.SchemeDelimiter + Request.RequestUri.Host + (Request.RequestUri.IsDefaultPort ? "" : ":" + Request.RequestUri.Port); var emailService = new EmailService(); // teknisyene Mail gönderiyor test ok. #region TEKNİSYENE MAİL GÖNDERME OK var body = $"Merhaba <b> {teknisyen.Name} {teknisyen.Surname}</b><br> Size {userOperator.Name} {userOperator.Surname} isimli çalışanımız tarafından bir Arıza Gönderilmiştir. Aşagıdaki Linke tıklayarak arızayı detaylı bir şekilde görebilirsiniz..<br>İyi Çalışmalar dileriz. FiTech <br> <a href='{SiteUrl}/Teknisyen/TeknisyenArizaRapor/{ariza.Id}' >Arıza Detayları için tıklayınız. </a> "; await emailService.SendAsync(new IdentityMessage() { Body = body, Subject = "Ariza İş Bildirimi" }, teknisyen.Email); #endregion #region MÜSTERİYE MAİL GÖNDERME var bodyMusteri = $"Merhaba <b> {musteri.Name} {musteri.Surname}</b><br> Sizin Acmıs oldugunuz {ariza.Id}'nolu kayıta {teknisyen.Name} {teknisyen.Surname} isimli çalışanımız yönlendirilmiştir<br> Fitech İyi Günler Diler.</a> "; await emailService.SendAsync(new IdentityMessage() { Body = bodyMusteri, Subject = "Ariza Teknisyen Bilgisi" }, model.Email); #endregion return(Ok(new ResponseData() { success = true, message = $"Tüm işlemler başarılı bir şekilde gerçekleştri" })); } catch (Exception ex) { return(BadRequest($"Bir hata olustu{ex.Message}")); } }
public async Task <IHttpActionResult> ArizaKabul(int id) { // Nasıl alınır opId bilmiyorm. var OpertatorId = HttpContext.Current.User.Identity.GetUserId(); try { var ariza = await new ArizaKayitRepo().GetByIdAsync(id); var Operator = await NewUserManager().FindByIdAsync(OpertatorId); if (ariza == null) { return(Ok(new ResponseData { message = $"Kayıt Bulunamadı", success = false, })); } else { ariza.OperatorKabulTarih = DateTime.Now; ariza.OperatorKabul = true; ariza.OperatorId = OpertatorId; ariza.ArizaDurumu = ArizaDurum.OperatorTakibeAldı; var updatesonuc = new ArizaKayitRepo().Update(ariza); if (updatesonuc < 1) { return(Ok(new ResponseData { message = $"Ariza Kayit Başarısz", success = false, })); } var OperatorLog = new ArizaLOG { CreatedDate = DateTime.Now, ArızaId = id, Aciklama = $"Ariza'nız {Operator.Name} {Operator.Surname} isimli Operator Tarafından Onaylanmıştır.", YapanınRolu = IdentityRoles.Teknisyen }; var responce = new ArizaLogRepo().Insert(OperatorLog); if (responce < 1) { return(Ok(new ResponseData { message = $"ArızaLog Başarısz", success = false, })); } return(Ok(new ResponseData { message = $"Atama ve log işlemleri başaarılı", success = true, })); //TODO Müşteriye Mail gönderilir bilgilendirme belki } } catch (Exception ex) { return(BadRequest($"Bir hata oluştu {ex.Message}")); } }