Example #1
0
        public IActionResult Edit(long id, EditEmailRequest editEmail)
        {
            if (!ModelState.IsValid)
            {
                return(NotFoundView());
            }

            Result <EmailViewModel> role = _emailDataService.GetViewModel(id, GetUserId());

            if (role.Failure)
            {
                return(NotFoundView());
            }

            Result editResult = _manageEmailService.Edit(id, editEmail);

            if (editResult.Failure)
            {
                ModelState.AddErrors(editResult.Errors);
                role.Value.StatusAlert = StatusAlertViewExtension.Get(editResult);

                return(View("Details", role.Value));
            }

            role.Value.StatusAlert = StatusAlertViewExtension.Get("Email updated");
            return(View("Details", role.Value));
        }
Example #2
0
        public Result Edit(long id, EditEmailRequest editEmail)
        {
            _logger.LogInformation($"Editing Email. EmailId {id}");

            ValidationResult validationResult = _editEmailValidator.Validate(editEmail);

            if (!validationResult.IsValid)
            {
                _logger.LogWarning($"Invalid {nameof(EditEmailRequest)} model");
                return(Result.Fail(validationResult.Errors));
            }

            Result <EmailEntity> getEmailResult = Get(id);

            if (getEmailResult.Failure)
            {
                return(Result.Fail(getEmailResult.Errors));
            }

            EmailEntity emailEntity = getEmailResult.Value;

            emailEntity.Update(editEmail.Subject, editEmail.Body);
            bool updateResult = _emailRepository.Update(emailEntity);

            if (!updateResult)
            {
                _logger.LogError($"Failed to update email", "Failed to update email");
                return(Result.Fail("failed_to_update_email", "Failed to update email"));
            }

            return(Result.Ok());
        }
Example #3
0
        public ActionResult Edit(string id, EmailDetailView emailDetailView)
        {
            #region Check Access
            bool hasPermission = GetEmployee().IsGuaranteed("Email_Update");
            if (!hasPermission)
            {
                ModelState.AddModelError("", "AccessDenied");
                return(View(emailDetailView));
            }
            #endregion

            if (ModelState.IsValid)
            {
                try
                {
                    EditEmailRequest request = new EditEmailRequest();

                    request.ID = Guid.Parse(id);
                    request.ModifiedEmployeeID = GetEmployee().ID;
                    request.Body       = emailDetailView.EmailView.Body;
                    request.CustomerID = emailDetailView.EmailView.CustomerID;
                    request.Sent       = emailDetailView.EmailView.Sent;
                    request.Subject    = emailDetailView.EmailView.Subject;
                    request.Note       = emailDetailView.EmailView.Note;
                    request.RowVersion = emailDetailView.EmailView.RowVersion;

                    GeneralResponse response = this._emailService.EditEmail(request);

                    if (response.success)
                    {
                        return(RedirectToAction("Index"));
                    }
                    else
                    {
                        foreach (string error in response.ErrorMessages)
                        {
                            ModelState.AddModelError("", error);
                        }
                        return(View(emailDetailView));
                    }
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", ex.Message);
                    return(View(emailDetailView));
                }
            }

            return(View(emailDetailView));
        }
 public EditEmailRequest GetEmailData(int AdminId)
 {
     using (MySqlConnection connection = WebApiConfig.Connection())
         using (MySqlCommand command = new MySqlCommand("SELECT * FROM `tbEmailPreferences` WHERE Id = " + AdminId, connection))
         {
             connection.Open();
             using (MySqlDataReader reader = command.ExecuteReader())
             {
                 while (reader.Read())
                 {
                     var i = new EditEmailRequest();
                     i.RecieveMail = true;
                     i.Repeating   = JsonSerializationUtility.Deserialize <TaskRepeatingNoTimespan>((string)reader["RepeatInJSON"]);
                     return(i);
                 }
                 return(new EditEmailRequest()
                 {
                     RecieveMail = false
                 });
             }
         }
 }
 public void UpdateEmail(int AdminId, EditEmailRequest email)
 {
     using (MySqlConnection connection = WebApiConfig.Connection())
         using (MySqlCommand command = new MySqlCommand("DELETE FROM `tbEmailPreferences` WHERE `IdAdmin` = " + AdminId, connection))
         {
             connection.Open();
             command.ExecuteNonQuery();
             if (email.RecieveMail)
             {
                 TaskRepeating rep = new TaskRepeating()
                 {
                     ExceptionDates = email.Repeating.ExceptionDates,
                     ExecutionTimes = email.Repeating.ExecutionTimes,
                     Repeating      = new TimeSpan(0, 0, email.Repeating.Repeating),
                     RepeatTill     = email.Repeating.RepeatTill
                 };
                 command.CommandText = $"INSERT INTO `tbEmailPreferences`(`IdAdmin`, `RepeatInJSON`, `RecievingEmail`) VALUES ({AdminId},@repeating,@email)";
                 command.Parameters.AddWithValue("@repeating", JsonSerializationUtility.Serialize(rep));
                 command.Parameters.AddWithValue("@email", GetAdminEmail(AdminId));
                 command.ExecuteNonQuery();
             }
         }
 }
Example #6
0
        public GeneralResponse EditEmail(EditEmailRequest request)
        {
            GeneralResponse response = new GeneralResponse();
            Email           email    = new Email();

            email = _emailRepository.FindBy(request.ID);

            if (email != null)
            {
                try
                {
                    email.ModifiedDate     = PersianDateTime.Now;
                    email.ModifiedEmployee = _employeeRepository.FindBy(request.ModifiedEmployeeID);
                    if (request.Body != null)
                    {
                        email.Body = request.Body;
                    }
                    if (request.CustomerID != null)
                    {
                        email.Customer = this._customerRepository.FindBy(request.CustomerID);
                    }
                    email.Sent = request.Sent;
                    if (request.Subject != null)
                    {
                        email.Subject = request.Subject;
                    }
                    if (request.Note != null)
                    {
                        email.Note = request.Note;
                    }

                    if (email.RowVersion != request.RowVersion)
                    {
                        response.ErrorMessages.Add("EditConcurrencyKey");
                        return(response);
                    }
                    else
                    {
                        email.RowVersion += 1;
                    }

                    if (email.GetBrokenRules().Count() > 0)
                    {
                        foreach (BusinessRule businessRule in email.GetBrokenRules())
                        {
                            response.ErrorMessages.Add(businessRule.Rule);
                        }

                        return(response);
                    }

                    _emailRepository.Save(email);
                    _uow.Commit();

                    ////response.success = true;
                }
                catch (Exception ex)
                {
                    response.ErrorMessages.Add(ex.Message);
                }
            }
            else
            {
                response.ErrorMessages.Add("NoItemToEditKey");
            }
            return(response);
        }