public async Task <ActionResult> ArizaKabul(int id) { //ikisiylede bulabilirsin o anki sistemde online olanı //var OpertatorId = HttpContext.User.Identity.GetUserId(); var OpertatorId = System.Web.HttpContext.Current.User.Identity.GetUserId(); try { var ariza = await new ArizaKayitRepo().GetByIdAsync(id); var Operator = await NewUserManager().FindByIdAsync(OpertatorId); if (ariza == null) { RedirectToAction("Index", "Operator"); } else { ariza.OperatorKabulTarih = DateTime.Now; ariza.OperatorKabul = true; ariza.OperatorId = OpertatorId; ariza.ArizaDurumu = ArizaDurum.OperatorTakibeAldı; new ArizaKayitRepo().Update(ariza); 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 }; new ArizaLogRepo().Insert(OperatorLog); return(RedirectToAction("Index", "Operator")); //TODO Müşteriye Mail gönderilir bilgilendirme belki } return(RedirectToAction("Index", "Operator")); } catch (Exception ex) { TempData["Model"] = new ErrorViewModel() { Text = $"Bir hata oluştu {ex.Message}", ActionName = "Index", ControllerName = "Admin", ErrorCode = 500 }; return(RedirectToAction("Error", "Home")); } }
public async Task <ActionResult> TeknisyenArızaBildiriOnayla(ArizaViewModel model) { try { var ariza = await new ArizaKayitRepo().GetByIdAsync(model.ArizaId); if (model.TeknisyenArizaDurum == null) { return(RedirectToAction("TeknisyenArizaRapor", "Teknisyen", model)); } ariza.TeknisyenArizaAciklama = model.TeknisyenArizaAciklama; ariza.TeknisyenArizaDurum = model.TeknisyenArizaDurum; ariza.ArizaSonKontrolTarihi = DateTime.Now; var TeknisyenId = System.Web.HttpContext.Current.User.Identity.GetUserId(); var teknisyen = await NewUserManager().FindByIdAsync(TeknisyenId); var musteri = NewUserManager().FindById(model.MusteriId); var Operator = NewUserManager().FindById(model.OperatorId); //musteri ıd vs gelmiyor onları getir . userı bul mail e gönder if (model.TeknisyenArizaDurum == TeknisyenArizaDurum.Çözüldü) { ariza.ArizaCozulduguTarih = DateTime.Now; var user = NewUserManager().FindById(model.MusteriId); ariza.TeknisyenDurumu = TeknisyenDurumu.Bosta; ariza.AnketCode = StringHelpers.GetCode(); new ArizaKayitRepo().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 {musteri.Name} {musteri.Surname} <b></b><br>FİTech için geri döüşleriniz çok önemli. 5 Dakikanızı ayırarak anketimizi doldurabilirsiniz. Aşagıdaki Linke tıklayarak anket sayfasına gidebilirsiniz.<br> <a href='{SiteUrl}/Anket/Index?code={ariza.AnketCode}' >Anket'e Gitmek için Tıklayınız. </a> "; await emailService.SendAsync(new IdentityMessage() { Body = body, Subject = "Anket" }, model.Email); //TODO Acaba buradada kontrol eedildimi edilmedimi kontrol etmeye gerek var mı ? var body2 = $"Merhaba {Operator.Name} {Operator.Surname} <b></b><br>{teknisyen.Name} {teknisyen.Surname} isimli calısanımıza {model.TeknisyenAtandigiTarih}'de atamıs oldugunuz Arizanın çözüldügünü iletti. Kontrol etmek için aşagıdaki link'e tıklayınız.<br> <a href='{SiteUrl}/TeknisyenArizaRapor/{model.ArizaId}' >Kontrol Etmek için Tıklayınız. </a> "; await emailService.SendAsync(new IdentityMessage() { Body = body, Subject = "Kontrol" }, Operator.Email); } var TeknisyenLog = new ArizaLOG { ArızaId = model.ArizaId, YapanınRolu = IdentityRoles.Teknisyen, CreatedDate = DateTime.Now, Aciklama = $"Arıza Kontrol Edildi. Kontrol sonucu {model.TeknisyenArizaAciklama} notu bırakıldı .Son Durum {model.TeknisyenArizaDurum}", }; new ArizaLogRepo().Insert(TeknisyenLog); TempData["Message"] = $"{model.ArizaId} no lu Kayıt Raporu Alınmıştır. İyi çalışamlar"; return(RedirectToAction("Index", "Teknisyen")); } catch (Exception ex) { TempData["Model"] = new ErrorViewModel() { Text = $"Bir hata oluştu {ex.Message}", ActionName = "Index", ControllerName = "Teknisyen", ErrorCode = 500 }; return(RedirectToAction("Error", "Home")); } }
public ActionResult ArizaKayitEkle(ArizaViewModel model) { //o anki sistemdeki kullanıcının idsini verir. //var asd = HttpContext.User.Identity.GetUserId(); // //if (!ModelState.IsValid) //{ // //Gelen model valid degiilse bu sayfaya yönlendirilip hatalar gösterilicek. // return RedirectToAction("Index", "Musteri", model); //} var userManager = NewUserManager().FindById(model.MusteriId); try { #region FaturaResimİşlemleri if (model.PostedFileFatura != null && model.PostedFileFatura.ContentLength > 0) { var file = model.PostedFileFatura; string fileName = Path.GetFileNameWithoutExtension(file.FileName); string extName = Path.GetExtension(file.FileName); fileName = StringHelpers.UrlFormatConverter(fileName); fileName += StringHelpers.GetCode(); var klasoryolu = Server.MapPath("~/Fatura/"); var dosyayolu = Server.MapPath("~/Fatura/") + fileName + extName; if (!Directory.Exists(klasoryolu)) { Directory.CreateDirectory(klasoryolu); } file.SaveAs(dosyayolu); WebImage img = new WebImage(dosyayolu); img.Resize(250, 250, false); img.AddTextWatermark("FİTech"); img.Save(dosyayolu); var oldPath = model.FaturaPath; model.FaturaPath = "/Fatura/" + fileName + extName; System.IO.File.Delete(Server.MapPath(oldPath)); } #endregion var data = new ArızaKayıt { MusteriId = model.MusteriId, Adres = model.Adres, ArizaDurumu = model.ArizaDurumu, ArizaOlusturmaTarihi = DateTime.Now, ArızaAcıklaması = model.ArızaAcıklaması, BeyazEsya = model.BeyazEsya, Email = model.Email, OperatorKabul = false, Telno = model.Telno, FaturaPath = model.FaturaPath, Enlem = model.Enlem, Boylam = model.Boylam, }; new ArizaKayitRepo().Insert(data); var LogMusteri = new ArizaLOG { CreatedDate = DateTime.Now, ArızaId = data.Id, Aciklama = $"{data.Id}'nolu kayıt {userManager.Name} {userManager.Surname} İsimli Müşteri Tarafından Oluşturuldu.", YapanınRolu = IdentityRoles.Musteri, }; new ArizaLogRepo().Insert(LogMusteri); #region ArızaResimİşlemi if (model.PostedFileAriza.Count > 0) { model.PostedFileAriza.ForEach(file => { if (file != null && file.ContentLength > 0) { string fileName = Path.GetFileNameWithoutExtension(file.FileName); string extName = Path.GetExtension(file.FileName); fileName = StringHelpers.UrlFormatConverter(fileName); fileName += StringHelpers.GetCode(); var klasoryolu = Server.MapPath("~/Ariza/"); var dosyayolu = Server.MapPath("~/Ariza/") + fileName + extName; if (!Directory.Exists(klasoryolu)) { Directory.CreateDirectory(klasoryolu); } file.SaveAs(dosyayolu); WebImage img = new WebImage(dosyayolu); img.Resize(250, 250, false); img.Save(dosyayolu); new FotografRepo().Insert(new Fotograf() { ArizaId = data.Id, Yol = "/Ariza/" + fileName + extName }); } }); } new ArizaKayitRepo().Update(data); #endregion var emailService = new EmailService(); var body = $"Merhaba <b>{userManager.Name} {userManager.Surname}</b><br>Arıza Kaydınız Oluşturulmuştur. En kısa zamanda arızanız giderilicektir.<br>Fitech Mutlu Günler Diler.<br> "; emailService.Send(new IdentityMessage() { Body = body, Subject = $"{userManager.UserName} Arıza Kaydı" }, model.Email); TempData["Message"] = $"{model.BeyazEsya} arıza şikayetiniz alınmıştır."; return(RedirectToAction("Index")); } catch (DbEntityValidationException ex) { TempData["Model"] = new ErrorViewModel() { Text = $"Bir hata oluştu: {EntityHelpers.ValidationMessage(ex)}", ActionName = "Index", ControllerName = "Musteri", ErrorCode = 500 }; return(RedirectToAction("Error", "Home")); } catch (Exception ex) { TempData["Model"] = new ErrorViewModel() { Text = $"Bir hata oluştu: {ex.Message}", ActionName = "Index", ControllerName = "Musteri", 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}")); } }
//TODO TEknisyen atamayı burada yap public async Task <ActionResult> 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; new ArizaKayitRepo().Update(ariza); var opId = HttpContext.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 }; new ArizaLogRepo().Insert(OperatorLog); string SiteUrl = Request.Url.Scheme + System.Uri.SchemeDelimiter + Request.Url.Host + (Request.Url.IsDefaultPort ? "" : ":" + Request.Url.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 TempData["Message"] = $"{ariza.Id} nolu arızaya {teknisyen.Name} {teknisyen.Surname} atanmıştır.İyi çalışmalar."; return(RedirectToAction("Index", "Operator")); } catch (Exception ex) { TempData["Model"] = new ErrorViewModel() { Text = $"Bir hata oluştu {ex.Message}", ActionName = "Index", ControllerName = "Admin", ErrorCode = 500 }; return(RedirectToAction("Error", "Home")); } }