Exemplo n.º 1
0
        public ActionResult GetFranchiseSettings(Guid?FranchiseId)
        {
            if (FranchiseId == null)
            {
                ModelState.AddModelError(string.Empty, $"Franchise ID not provided.  Unable to load franchise settings.");
                return(JsonFormResponse());
            }

            Franchise           _franchise = null;
            FranchiseSettingsVM _dataItem  = null;

            List <SystemSetting> _settings = new List <SystemSetting>();

            using (DBManager db = new DBManager())
            {
                StringBuilder _sql = new StringBuilder();
                _sql.Append("Select * from SystemSettings where IsActive = 1");
                _settings = db.getConnection().Query <SystemSetting>(_sql.ToString()).ToList();

                _sql.Clear();
                _sql.Append($"select * from Franchises where ID = '{FranchiseId}'");
                _franchise = db.getConnection().Query <Franchise>(_sql.ToString()).SingleOrDefault();

                if (_franchise == null)
                {
                    ModelState.AddModelError(string.Empty, $"Franchise [{FranchiseId.ToString()}] not found.  Please try again.");
                    return(JsonFormResponse());
                }

                _dataItem = new FranchiseSettingsVM();
                _dataItem.PopulateVM(_franchise, _settings);

                return(new JsonNetResult()
                {
                    Data = new { item = _dataItem }, JsonRequestBehavior = JsonRequestBehavior.AllowGet
                });
            }
        }
Exemplo n.º 2
0
        public ActionResult SaveFranchiseSettings(FranchiseSettingsVM dataItem)
        {
            //https://stackoverflow.com/questions/13541225/asp-net-mvc-how-to-display-success-confirmation-message-after-server-side-proce

            if (dataItem == null || !Helpers.IsValidGuid(dataItem.Id))
            {
                ModelState.AddModelError(string.Empty, "Valid franchise settings not found. Ensure a valid franchise is selected.");
            }

            if (ModelState.IsValid)
            {
                String _id = dataItem.Id;

                try
                {
                    Franchise     _objToUpdate = null;
                    StringBuilder _sql         = new StringBuilder();

                    using (DBManager db = new DBManager())
                    {
                        _sql.Append($"select * from Franchises where Id = '{_id}'");
                        _objToUpdate = db.getConnection().Query <Franchise>(_sql.ToString()).SingleOrDefault();

                        if (_objToUpdate == null)
                        {
                            ModelState.AddModelError(string.Empty, $"Franchise [{_id.ToString()}] not found.  Please try again.");
                            return(JsonFormResponse());
                        }

                        _objToUpdate.ManagementFeePercentage = dataItem.ManagementFeePercentage;
                        _objToUpdate.RoyaltyFeePercentage    = dataItem.RoyaltyFeePercentage;

                        _sql.Clear();
                        _sql.Append("Update Franchises set ");
                        _sql.Append($"UpdatedAt = '{_objToUpdate.UpdatedAt.FormatDatabaseDateTime()}'");
                        _sql.Append($",RowVersion = '{_objToUpdate.RowVersion.FormatDatabaseDateTime()}'");
                        _sql.Append($",UpdatedBy = '{_objToUpdate.UpdatedBy}'");
                        _sql.Append($",ManagementFeePercentage = {_objToUpdate.ManagementFeePercentage}");
                        _sql.Append($",RoyaltyFeePercentage = {_objToUpdate.RoyaltyFeePercentage}");
                        _sql.Append($" where Id = '{_objToUpdate.Id}' ");
                        db.getConnection().Execute(_sql.ToString());
                    }
                    return(JsonSuccessResponse("Franchise settings saved successfully", _objToUpdate));
                }
                //catch (DbUpdateConcurrencyException ex)
                //{
                //	var entry = ex.Entries.Single();
                //	var clientValues = (Franchise)entry.Entity;
                //	var databaseEntry = entry.GetDatabaseValues();
                //	if (databaseEntry == null)
                //	{
                //		ModelState.AddModelError(string.Empty, "Unable to save changes. The franchise was deleted by another user.");
                //	}
                //	else
                //	{
                //		var databaseValues = (Franchise)databaseEntry.ToObject();

                //		if (databaseValues.RoyaltyFeePercentage != clientValues.RoyaltyFeePercentage)
                //			ModelState.AddModelError("RoyaltyFeePercentage", "Current database value for franchise royalty fee: " + databaseValues.RoyaltyFeePercentage);

                //		if (databaseValues.ManagementFeePercentage != clientValues.ManagementFeePercentage)
                //			ModelState.AddModelError("TradingName", "Current database value for franchise management fee: " + databaseValues.ManagementFeePercentage);

                //		ModelState.AddModelError(string.Empty, "The record you attempted to edit "
                //			+ "was modified by another user after you got the original value. The edit operation "
                //			+ "was canceled. If you still want to edit this record, click the Save button again.");
                //	}
                //}
                catch (Exception ex)
                {
                    ModelState.AddModelError(string.Empty, Helpers.FormatModelError("Error saving franchise settings", ex));

                    LogHelper log = new LogHelper();
                    log.Log(LogHelper.LogLevels.Error, "Error saving franchise settings", nameof(SaveFranchise), ex, dataItem, Helpers.ParseValidationErrors(ex));
                }
            }

            if (!ModelState.IsValid)
            {
                Helpers.LogFormValidationErrors(ModelState, nameof(SaveFranchiseSettings), dataItem);
            }

            return(JsonFormResponse());
        }