public JsonResult SaveRevenue(OwnerPayoutRevenueModel form) { if (!AuthorizationProvider.CanEditRevenue()) { string message = string.Format("User '{0}' does not have permission to save Owner Payout {1}.", this.User.Identity.Name, form.OwnerPayoutId.ToString()); DojoLogger.Warn(message, typeof(OwnerPayoutController)); Response.StatusCode = (int)System.Net.HttpStatusCode.Forbidden; return(Json(string.Empty, JsonRequestBehavior.AllowGet)); } try { // treat checkin and checkout date as Hawaii time zone and covert it to UTC by adding 11 hours. if (form.PayoutDate != null) { form.PayoutDate = ConversionHelper.ToUtcFromUs(form.PayoutDate.Value); } var dataProvider = new OwnerPayoutRevenueProvider(_dbContext); if (form.OwnerPayoutId == 0) // new OwnerPayout { if (dataProvider.GetKey(form) != 0) { Response.StatusCode = (int)System.Net.HttpStatusCode.Conflict; // code = 409 return(Json(string.Empty, JsonRequestBehavior.AllowGet)); } else { dataProvider.Create(form); } } else // updating OwnerPayout { dataProvider.Update(form.OwnerPayoutId, form); } dataProvider.Commit(); // OwnerPayoutId will be filled for new OwnerPayout by EF // get the OwnerPayout ID if (form.OwnerPayoutId == 0) { form.OwnerPayoutId = dataProvider.GetKey(form); } var provider = new OwnerPayoutProvider(_dbContext); provider.UpdateOwnerPayoutMatchStatus(form.OwnerPayoutId); return(Json(form.OwnerPayoutId.ToString(), JsonRequestBehavior.AllowGet)); } catch (Exception ex) { var innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty; string message = string.Format("Saving Owner Payout {0} fails. {1},{2}", form.OwnerPayoutId.ToString(), ex.Message, innerErrorMessage); DojoLogger.Error(message, typeof(OwnerPayoutController)); Response.StatusCode = (int)System.Net.HttpStatusCode.InternalServerError; return(Json(string.Empty, JsonRequestBehavior.AllowGet)); } }
public void MapData(OwnerPayoutRevenueModel model, OwnerPayout entity, bool isNew = false) { // map form fields entity.AccountNumber = model.PayToAccount; entity.PayoutAmount = model.PayoutAmount; entity.PayoutDate = ConversionHelper.EnsureUtcDate(model.PayoutDate); entity.Source = model.Source; if (isNew) { entity.IsDeleted = false; entity.InputSource = AppConstants.MANUAL_INPUT_SOURCE; entity.DiscrepancyAmount = 0; entity.IsAmountMatched = true; } else { // DiscrepancyAmount field are calcuated on-the-fly in owner payout query // IsAmountMatched is obsolete } }