public static PaymentRequestState FromString(string state) { PaymentRequestState s = PaymentRequestState.InProcess; switch (state) { case "InProcess": s = PaymentRequestState.InProcess; break; case "WaitConfirm": s = PaymentRequestState.WaitConfirm; break; case "Confirmed": s = PaymentRequestState.Confirmed; break; case "Rejected": s = PaymentRequestState.Rejected; break; case "ReWorked": s = PaymentRequestState.ReWorked; break; case "Credited": s = PaymentRequestState.Credited; break; } return(s); }
public ActionResult ChangeState() { if ((Request["PaymentRequestId_Modal"] == null) || (Request["PaymentRequestState_Modal"] == null)) { ModelState.AddModelError("", "Ошибочный запрос"); return(RedirectToAction("Index")); } try { int id = int.Parse(Request["PaymentRequestId_Modal"]); PaymentRequestState state = (PaymentRequestState)byte.Parse(Request["PaymentRequestState_Modal"]); PaymentRequestState prev_state; PaymentRequest r = db.PaymentRequests.Find(id); if (r == null) { ModelState.AddModelError("", "Заявка не найдена"); return(RedirectToAction("Index")); } prev_state = r.RequestState; r.RequestState = state; r.WhenStateChanged = DateTime.Now; if (Request["Comments"] != null) { string Comments = Request["Comments"].ToString(); if (!String.IsNullOrEmpty(Comments)) { var currentUser = manager.FindById(User.Identity.GetUserId()); db.RequestHistories.Add(new RequestHistory() { WhenPosted = DateTime.Now, Comments = Comments, Author = currentUser, Request = r }); } } db.SaveChanges(); if (prev_state == PaymentRequestState.InProcess && state == PaymentRequestState.WaitConfirm) { SendMailToDirector(r.AppointedUser.ShortName, r.Project.Name); } else if (prev_state == PaymentRequestState.WaitConfirm && state == PaymentRequestState.ReWorked) { SendMailToProjectManager(r.AppointedUser.Email, r.Project.Name); } return(RedirectToAction("Index")); } catch (Exception e) { ModelState.AddModelError("", "Ошибка ввода данных " + e.Message); return(RedirectToAction("Index")); } }