示例#1
0
        public JsonResult Delete(string model)
        {
            if (!AuthorizationProvider.CanEditRevenue())
            {
                return(Forbidden());
            }

            // parameter is passed in as a model with Json string
            var entity = JsonConvert.DeserializeObject <ExpenseRevenueModel>(model);

            try
            {
                if (entity.Children.Count == 0)
                {
                    var dataProvider = new ExpenseRevenueProvider(_dbContext);
                    dataProvider.Delete(entity.ExpenseId);
                    dataProvider.Commit();
                }
                return(Json("success", JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(InternalError(string.Format("Delete Expense {0:d} fails.", entity.ExpenseId), "fail", ex));
            }
        }
示例#2
0
        public JsonResult Create(string model)
        {
            if (!AuthorizationProvider.CanEditRevenue())
            {
                return(Forbidden());
            }

            var entity = JsonConvert.DeserializeObject <ExpenseRevenueModel>(model);

            try
            {
                // parameter is passed in as a model with Json string
                var dataProvider = new ExpenseRevenueProvider(_dbContext);
                dataProvider.Create(entity);
                dataProvider.Commit();

                if (entity.ExpenseId == 0)
                {
                    entity.ExpenseId = dataProvider.GetKey(entity);
                }

                entity.ParentId = entity.ExpenseId;
                dataProvider.Update(entity.ExpenseId, entity);
                dataProvider.Commit();

                return(Json(entity, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                var    innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty;
                string message           = string.Format("Saving Expense {0:d} fails. {1} - {2}", entity.ExpenseId, ex.Message, innerErrorMessage);
                return(InternalError(message, string.Empty));
            }
        }
示例#3
0
        public JsonResult UpdateFieldStatus(int id, string field, int included)
        {
            if (!AuthorizationProvider.CanEditRevenue())
            {
                return(Forbidden());
            }

            try
            {
                var provider = new ExpenseRevenueProvider(_dbContext);
                var ok       = provider.SetFieldStatus(id, field, (included == 1 ? true : false));
                if (ok)
                {
                    return(Json(id, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(string.Empty, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                string message = string.Format("Change Expense 'IncludeInStatement' for ID = {0:d} fails. {1}", id, ex.Message + ex.StackTrace);
                return(InternalError(message, string.Empty, ex));
            }
        }
示例#4
0
        public JsonResult UpdateWorkflowAll(DateTime month, string propertyCode, int state, int direction)
        {
            RevenueApprovalStatus workflowState = (RevenueApprovalStatus)state;

            if (!((AuthorizationProvider.CanReviewRevenue() && workflowState == RevenueApprovalStatus.Reviewed) ||
                  (AuthorizationProvider.CanApproveRevenue() && workflowState == RevenueApprovalStatus.Approved) ||
                  (AuthorizationProvider.CanFinalizeRevenue() && workflowState == RevenueApprovalStatus.Finalized)))
            {
                return(Forbidden());
            }

            try
            {
                var dataProvider = new ExpenseRevenueProvider(_dbContext);
                var nextState    = dataProvider.MoveWorkflowAll(month, propertyCode, workflowState, direction);

                if (nextState != null)
                {
                    return(Json(nextState, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json("-1", JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                string message = string.Format("Change {0} Expense workflow fails for property {1}. {2}", month.ToString("MM/dd/yyyy"), propertyCode, ex.Message + ex.StackTrace);
                return(InternalError(message, "-1", ex));
            }
        }
示例#5
0
        public JsonResult GetConfirmationCodeList(DateTime month, string propertyCode)
        {
            if (!AuthorizationProvider.CanViewRevenue())
            {
                return(Forbidden());
            }

            var provider = new ExpenseRevenueProvider(_dbContext);
            var data     = provider.GetConfirmationCodeList(month, propertyCode);

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
示例#6
0
        public JsonResult Retrieve(DateTime month, string propertyCode)
        {
            if (!AuthorizationProvider.CanViewRevenue())
            {
                return(Forbidden());
            }

            var provider = new ExpenseRevenueProvider(_dbContext);
            var view     = provider.Retrieve(month, propertyCode);

            return(Json(view, JsonRequestBehavior.AllowGet));
        }
示例#7
0
        public JsonResult UpdateCombinedExpense(int sourceId, int targetId)
        {
            if (!AuthorizationProvider.CanEditRevenue())
            {
                return(Forbidden());
            }

            try
            {
                var dataProvider = new ExpenseRevenueProvider(_dbContext);
                var id           = dataProvider.UpdateCombinedExpense(sourceId, targetId);
                return(Json(id, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                var    innerErrorMessage = ex.InnerException != null ? ex.InnerException.Message : string.Empty;
                string message           = string.Format("Combine Expense {0:d} into {1:d} fails. {2} - {3}", sourceId, targetId, ex.Message, innerErrorMessage);
                return(InternalError(message, "-1", ex));
            }
        }
示例#8
0
        public JsonResult UpdateWorkflow(int id, int state, int direction)
        {
            RevenueApprovalStatus workflowState = (RevenueApprovalStatus)state;

            if (!((AuthorizationProvider.CanReviewRevenue() && workflowState == RevenueApprovalStatus.Reviewed) ||
                  (AuthorizationProvider.CanApproveRevenue() && workflowState == RevenueApprovalStatus.Approved) ||
                  (AuthorizationProvider.CanFinalizeRevenue() && workflowState == RevenueApprovalStatus.Finalized)))
            {
                return(Forbidden());
            }

            try
            {
                var dataProvider = new ExpenseRevenueProvider(_dbContext);
                RevenueApprovalStatus?nextState = null;
                if (direction > 0)
                {
                    nextState = dataProvider.MoveWorkflow(id, workflowState);
                }
                else
                {
                    nextState = dataProvider.BacktrackWorkflow(id, workflowState);
                }

                if (nextState != null)
                {
                    return(Json(nextState, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json("-1", JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                string message = string.Format("Change Reservation {0} workflow fails. {1}", id.ToString(), ex.Message + ex.StackTrace);
                return(InternalError(message, "-1", ex));
            }
        }