protected virtual void FillChangeColumns(ChangeLists lst) { if (!UseChangeColumns) { return; } long?userId = _provider.GetCurrentUser()?.GetUserIdAsLong(); foreach (IChangeColumns mod in lst.Added) { if (userId != null) { mod.CreatedBy = userId; mod.UpdatedBy = userId; } mod.CreatedOn = DateTime.Now; mod.UpdatedOn = DateTime.Now; } foreach (IChangeColumns mod in lst.Updated) { if (userId != null) { mod.UpdatedBy = userId; } mod.UpdatedOn = DateTime.Now; } }
public void OnChangelistUpdated(object Sender, P4ScmProvider.ChangelistUpdateArgs Args) { if (Args.ChanglistId == ChangeLists.ActiveChangeList) { if ((Args.Action == P4ScmProvider.ChangelistUpdateArgs.UpdateType.Delete) || (Args.Action == P4ScmProvider.ChangelistUpdateArgs.UpdateType.Submitted)) { ChangeLists.SetActiveChangeList(0); } } }
/// <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); }
/// <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); }