Пример #1
0
        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"));
            }
        }
Пример #3
0
        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"));
            }
        }
Пример #4
0
        //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}"));
            }
        }
Пример #5
0
        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}"));
            }
        }
Пример #6
0
        //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"));
            }
        }