Exemple #1
0
 public virtual async Task Save(IValidator validator)
 {
     if (FormState == FormState.Copy || FormState == FormState.Create || FormState == FormState.Edit)
     {
         if (FormState == FormState.Edit)
         {
             if (OnAfterSave == null)
             {
                 await InternalUpdate(validator);
             }
             else
             {
                 OnBeforeSave.Invoke(async() => await InternalUpdate(validator));
             }
         }
         else
         {
             if (OnAfterSave == null)
             {
                 await InternalCreate(validator);
             }
             else
             {
                 OnBeforeSave.Invoke(async() => await InternalCreate(validator));
             }
         }
     }
 }
        /// <summary>
        /// Attempts to submit changes to the data source
        /// </summary>
        /// <returns>if success <see cref="SubmitResult.Code"/> is 0</returns>
        public override SubmitResult SaveChanges(string successMessage = null, string failMessage = null)
        {
            SubmitResult res     = new SubmitResult();
            string       def     = Strings.Word(MessageIds.success_message);
            string       defFail = Strings.Word(MessageIds.fail_message);

            successMessage = successMessage ?? def;
            failMessage    = failMessage ?? defFail;

            ChangeLists lst = null;

            if (OnBeforeSave != null || OnSaveSuccess != null || Saving != null || UseChangeColumns)
            {
                lst = GetChangeSet();
                OnBeforeSave?.Invoke(lst);
                Saving?.Invoke(this, lst);
                FillChangeColumns(lst);
            }

            try
            {
                int rows = DbContext.SaveChanges();

                res = new SubmitResult
                {
                    AffectedRows = rows,
                    Code         = 0,
                    Message      = successMessage
                };

                try
                {
                    OnSaveSuccess?.Invoke(lst);
                }
                catch (Exception ex)
                {
                    res.SetException(ex);
                    res.Code = 0;
                }
            }
            catch (Exception ex)
            {
                res = CustomizeException(ex, failMessage);
            }
            return(res);
        }
Exemple #3
0
 protected void InvokeOnBeforeSave()
 {
     IsSaving = true; OnBeforeSave.SafeInvoke();
 }
 public static void Save(LeaderboardModel model)
 {
     OnBeforeSave?.Invoke();
     SaveLeaderboardData(model);
 }
Exemple #5
0
 protected void InvokeOnBeforeSave()
 {
     Saving = true; OnBeforeSave?.Invoke();
 }
 public static void Save(SettingsModel model)
 {
     OnBeforeSave?.Invoke();
     SaveSettingsData(model);
 }
Exemple #7
0
        /// <summary>
        /// Attempts to submit changes to the data source
        /// </summary>
        /// <returns>if success <see cref="SubmitResult.Code"/> is 0</returns>
        public virtual SubmitResult SaveChanges(string successMessage = null, string failMessage = null)
        {
            SubmitResult res = new SubmitResult();

            successMessage = successMessage == null?Strings.Word(MessageIds.success_message) : successMessage;

            failMessage = failMessage == null?Strings.Word(MessageIds.fail_message) : failMessage;

            ChangeLists lst = null;

            if (OnBeforeSave != null || OnSaveSuccess != null)
            {
                lst = GetChangeSet();
                OnBeforeSave?.Invoke(lst);
            }

            try
            {
                int rows = DbContext.SaveChanges();

                OnSaveSuccess?.Invoke(lst);

                res = new SubmitResult
                {
                    AffectedRows = rows,
                    Code         = 0,
                    Message      = successMessage
                };
            }
            catch (DbEntityValidationException dbEx)
            {
                OnExceptionHandling?.Invoke(dbEx);
                var msg = string.Empty;

                foreach (var validationErrors in dbEx.EntityValidationErrors)
                {
                    foreach (var validationError in validationErrors.ValidationErrors)
                    {
                        msg += Environment.NewLine +
                               string.Format("Property: {0} Error: {1}", validationError.PropertyName,
                                             validationError.ErrorMessage);
                    }
                }
                res = new SubmitResult
                {
                    Message = failMessage,
                    Code    = 102,
                };
                res.SetException(dbEx);
                res.ExceptionMessage = msg;
            }
            catch (SqlException ex)
            {
                OnExceptionHandling?.Invoke(ex);
                res = new SubmitResult
                {
                    Code    = ex.Number,
                    Message = failMessage
                };
                res.SetException(ex);
            }
            catch (Exception ex)
            {
                OnExceptionHandling?.Invoke(ex);
                res = new SubmitResult
                {
                    Code    = 101,
                    Message = failMessage
                };
                res.SetException(ex);
            }
            return(res);
        }
Exemple #8
0
 public static void Save()
 {
     OnBeforeSave?.Invoke();
     SaveStateData(State);
 }