public RefundRequest SaveRequest(RefundRequestEditModel model) { try { var refundRequest = Mapper.Map <RefundRequestEditModel, RefundRequest>(model); refundRequest.RequestedOn = DateTime.Now; refundRequest.RequestedByOrgRoleUserId = _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId; var requestsInDb = _refundRequestRepository.GetbyOrderId(model.OrderId); var repository = ((IRepository <RefundRequest>)_refundRequestRepository); if (requestsInDb != null) { var requestInDb = requestsInDb.Where(rr => rr.RefundRequestType == refundRequest.RefundRequestType).SingleOrDefault(); if (requestInDb != null) { refundRequest.Id = requestInDb.Id; } else if ((refundRequest.RefundRequestType == RefundRequestType.CustomerCancellation || refundRequest.RefundRequestType == RefundRequestType.EventCancellation) && requestsInDb.Count() > 0) { repository.Delete(requestsInDb); } } refundRequest = repository.Save(refundRequest); return(refundRequest); } catch (Exception) { throw new Exception("Request not generated."); } }
protected RefundRequestEditModel PrepareRefundRequestObject() { var model = new RefundRequestEditModel(); var members = typeof(RefundRequestEditModel).GetMembers(); foreach (var memberInfo in members) { if (memberInfo.MemberType != MemberTypes.Property) { continue; } var propInfo = (memberInfo as PropertyInfo); if (propInfo != null) { if (propInfo.PropertyType == typeof(FeedbackMessageModel)) { continue; } } else { continue; } string propertyName = memberInfo.Name; if (Request.Form[propertyName] != null) { SetValue(propInfo, model, propertyName); } } return(model); }
public ActionResult Create(long orderId, decimal amount, RefundRequestType requestType) { var model = new RefundRequestEditModel() { OrderId = orderId, RequestedRefundAmount = amount, RefundType = (int)requestType }; return(View(model)); }
public ActionResult Create(RefundRequestEditModel model) { try { var refundRequest = Mapper.Map <RefundRequestEditModel, RefundRequest>(model); refundRequest.RequestedOn = DateTime.Now; refundRequest.RequestedByOrgRoleUserId = _sessionContext.UserSession.CurrentOrganizationRole.OrganizationRoleUserId; refundRequest = _repository.Save(refundRequest); return(Content(refundRequest.Id.ToString())); } catch (Exception) { return(Content("0")); } }
private RefundRequestEditModel SetValue(PropertyInfo propInfo, RefundRequestEditModel model, string propertyName) { if (Request.Form[propertyName] != null && !string.IsNullOrEmpty(Request.Form[propertyName])) { if (propInfo.PropertyType == typeof(Int32)) { propInfo.SetValue(model, Convert.ToInt32(Request.Form[propertyName]), null); } else if (propInfo.PropertyType == typeof(Int64)) { propInfo.SetValue(model, Convert.ToInt64(Request.Form[propertyName]), null); } else if (propInfo.PropertyType == typeof(Int16)) { propInfo.SetValue(model, Convert.ToInt16(Request.Form[propertyName]), null); } else if (propInfo.PropertyType == typeof(DateTime)) { propInfo.SetValue(model, Convert.ToDateTime(Request.Form[propertyName]), null); } else if (propInfo.PropertyType == typeof(decimal)) { propInfo.SetValue(model, Convert.ToDecimal(Request.Form[propertyName]), null); } else if (propInfo.PropertyType.BaseType == typeof(Enum)) { if (Enum.IsDefined(propInfo.PropertyType, Request.Form[propertyName])) { var value = Enum.Parse(propInfo.PropertyType, Request.Form[propertyName]); propInfo.SetValue(model, value, null); } } else { propInfo.SetValue(model, Request.Form[propertyName], null); } } return(model); }