Exemplo n.º 1
0
        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
                }));
            }
        }