protected virtual void ExecuteDelete() { var isActiveRow = Row as IIsActiveRow; var idField = (Field)Row.IdField; var id = Request.EntityId.Value; if (ShouldActuallyDelete || isActiveRow == null) { if (new SqlDelete(Row.Table) .WhereEqual(idField, id) .Execute(Connection) != 1) { throw DataValidation.EntityNotFoundError(Row, id); } } else { if (new SqlUpdate(Row.Table) .Set(isActiveRow.IsActiveField, -1) .WhereEqual(idField, id) .Where(new Criteria(isActiveRow.IsActiveField) >= 0) .Execute(Connection) != 1) { throw DataValidation.EntityNotFoundError(Row, id); } } InvalidateCacheOnCommit(); }
protected virtual void LoadOldEntity() { var idField = (Field)(Row.IdField); var id = Row.IdField[Row].Value; if (!PrepareQuery().GetFirst(Connection)) { throw DataValidation.EntityNotFoundError(Row, id); } }
protected virtual void LoadOldEntity() { if (!PrepareQuery().GetFirst(Connection)) { var idField = (Field)(Row.IdField); var id = Request.EntityId != null? idField.ConvertValue(Request.EntityId, CultureInfo.InvariantCulture) : idField.AsObject(Row); throw DataValidation.EntityNotFoundError(Row, id); } }
protected virtual void LoadEntity() { var idField = (Field)Row.IdField; var query = new SqlQuery().From(Row) .WhereEqual(idField, Request.EntityId.Value); PrepareQuery(query); if (!query.GetFirst(Connection)) { throw DataValidation.EntityNotFoundError(Row, Request.EntityId.Value); } }
protected virtual void LoadEntity() { var idField = Row.IdField; var id = idField.ConvertValue(Request.EntityId, CultureInfo.InvariantCulture); var query = new SqlQuery() .Dialect(Connection.GetDialect()) .From(Row) .WhereEqual(idField, id); PrepareQuery(query); if (!query.GetFirst(Connection)) throw DataValidation.EntityNotFoundError(Row, Request.EntityId, Localizer); }
protected virtual void ExecuteDelete() { var isDeletedRow = Row as IIsActiveDeletedRow; var deleteLogRow = Row as IDeleteLogRow; var idField = (Field)Row.IdField; var id = Request.EntityId.Value; if (isDeletedRow == null && deleteLogRow == null) { if (new SqlDelete(Row.Table) .WhereEqual(idField, id) .Execute(Connection) != 1) { throw DataValidation.EntityNotFoundError(Row, id); } } else { if (isDeletedRow != null) { if (new SqlUpdate(Row.Table) .Set(isDeletedRow.IsActiveField, -1) .WhereEqual(idField, id) .Where(new Criteria(isDeletedRow.IsActiveField) >= 0) .Execute(Connection) != 1) { throw DataValidation.EntityNotFoundError(Row, id); } } else //if (deleteLogRow != null) { if (new SqlUpdate(Row.Table) .Set(deleteLogRow.DeleteDateField, DateTimeField.ToDateTimeKind(DateTime.Now, deleteLogRow.DeleteDateField.DateTimeKind)) .Set((Field)deleteLogRow.DeleteUserIdField, Authorization.UserId.TryParseID()) .WhereEqual(idField, id) .Where(new Criteria((Field)deleteLogRow.DeleteUserIdField).IsNull()) .Execute(Connection) != 1) { throw DataValidation.EntityNotFoundError(Row, id); } } } InvalidateCacheOnCommit(); }
public TRetrieveResponse Process(IDbConnection connection, TRetrieveRequest request) { StateBag.Clear(); if (connection == null) { throw new ArgumentNullException("connection"); } request.CheckNotNull(); if (request.EntityId == null) { throw DataValidation.RequiredError("entityId"); } Connection = connection; Request = request; ValidateRequest(); Response = new TRetrieveResponse(); Row = new TRow(); this.Query = CreateQuery(); PrepareQuery(Query); OnBeforeExecuteQuery(); if (Query.GetFirst(Connection)) { Response.Entity = Row; } else { throw DataValidation.EntityNotFoundError(Row, request.EntityId); } OnAfterExecuteQuery(); OnReturn(); return(Response); }
public TRetrieveResponse Process(IDbConnection connection, TRetrieveRequest request) { if (connection == null) { throw new ArgumentNullException("connection"); } request.CheckNotNull(); if (request.EntityId == null) { throw DataValidation.RequiredError("entityId"); } Connection = connection; Request = request; ValidatePermissions(); Response = new TRetrieveResponse(); Row = new TRow(); var query = CreateQuery(); PrepareQuery(query); if (query.GetFirst(Connection)) { Response.Entity = Row; } else { throw DataValidation.EntityNotFoundError(Row, request.EntityId.Value); } OnReturn(); return(Response); }
protected virtual void ExecuteDelete() { var isActiveDeletedRow = Row as IIsActiveDeletedRow; var isDeletedRow = Row as IIsDeletedRow; var deleteLogRow = Row as IDeleteLogRow; var idField = (Field)Row.IdField; var id = idField.ConvertValue(Request.EntityId, CultureInfo.InvariantCulture); if (isActiveDeletedRow == null && isDeletedRow == null && deleteLogRow == null) { if (new SqlDelete(Row.Table) .WhereEqual(idField, id) .Execute(Connection) != 1) { throw DataValidation.EntityNotFoundError(Row, id); } } else { if (isDeletedRow != null || isActiveDeletedRow != null) { var updateLogRow = Row as IUpdateLogRow; var update = new SqlUpdate(Row.Table) .WhereEqual(idField, id) .Where(ServiceQueryHelper.GetNotDeletedCriteria(Row)); if (isActiveDeletedRow != null) { update.Set(isActiveDeletedRow.IsActiveField, -1); } else if (isDeletedRow != null) { update.Set(isDeletedRow.IsDeletedField, true); } if (deleteLogRow != null) { update.Set(deleteLogRow.DeleteDateField, DateTimeField.ToDateTimeKind(DateTime.Now, deleteLogRow.DeleteDateField.DateTimeKind)) .Set((Field)deleteLogRow.DeleteUserIdField, Authorization.UserId.TryParseID()); } else if (updateLogRow != null) { update.Set(updateLogRow.UpdateDateField, DateTimeField.ToDateTimeKind(DateTime.Now, updateLogRow.UpdateDateField.DateTimeKind)) .Set((Field)updateLogRow.UpdateUserIdField, Authorization.UserId.TryParseID()); } if (update.Execute(Connection) != 1) { throw DataValidation.EntityNotFoundError(Row, id); } } else //if (deleteLogRow != null) { if (new SqlUpdate(Row.Table) .Set(deleteLogRow.DeleteDateField, DateTimeField.ToDateTimeKind(DateTime.Now, deleteLogRow.DeleteDateField.DateTimeKind)) .Set((Field)deleteLogRow.DeleteUserIdField, Authorization.UserId.TryParseID()) .WhereEqual(idField, id) .Where(new Criteria((Field)deleteLogRow.DeleteUserIdField).IsNull()) .Execute(Connection) != 1) { throw DataValidation.EntityNotFoundError(Row, id); } } } InvalidateCacheOnCommit(); }
public TUndeleteResponse Process(IUnitOfWork unitOfWork, UndeleteRequest request) { UnitOfWork = unitOfWork ?? throw new ArgumentNullException("unitOfWork"); ValidatePermissions(); Request = request; Response = new TUndeleteResponse(); if (request.EntityId == null) { throw DataValidation.RequiredError("EntityId", Localizer); } Row = new TRow(); var isActiveDeletedRow = Row as IIsActiveDeletedRow; var isDeletedRow = Row as IIsDeletedRow; var deleteLogRow = Row as IDeleteLogRow; if (isActiveDeletedRow == null && isDeletedRow == null && deleteLogRow == null) { throw new NotImplementedException(); } var idField = Row.IdField; var id = idField.ConvertValue(Request.EntityId, CultureInfo.InvariantCulture); LoadEntity(); ValidateRequest(); if ((isDeletedRow != null && isDeletedRow.IsDeletedField[Row] != true) || (isActiveDeletedRow != null && isActiveDeletedRow.IsActiveField[Row] >= 0) || (deleteLogRow != null && deleteLogRow.DeleteUserIdField.IsNull(Row))) { Response.WasNotDeleted = true; } else { OnBeforeUndelete(); var update = new SqlUpdate(Row.Table) .WhereEqual(idField, id); if (isActiveDeletedRow != null) { update.Set(isActiveDeletedRow.IsActiveField, 1) .WhereEqual(isActiveDeletedRow.IsActiveField, -1); } else if (isDeletedRow != null) { update.Set(isDeletedRow.IsDeletedField, false) .WhereEqual(isDeletedRow.IsDeletedField, 1); } if (deleteLogRow != null) { update.Set(deleteLogRow.DeleteUserIdField, null) .Set(deleteLogRow.DeleteDateField, null); if (isActiveDeletedRow == null && isDeletedRow == null) { update.Where(deleteLogRow.DeleteUserIdField.IsNotNull()); } } if (update.Execute(Connection) != 1) { throw DataValidation.EntityNotFoundError(Row, id, Localizer); } InvalidateCacheOnCommit(); OnAfterUndelete(); DoAudit(); } OnReturn(); return(Response); }
public TUndeleteResponse Process(IUnitOfWork unitOfWork, UndeleteRequest request) { if (unitOfWork == null) { throw new ArgumentNullException("unitOfWork"); } ValidatePermissions(); UnitOfWork = unitOfWork; Request = request; Response = new TUndeleteResponse(); if (request.EntityId == null) { throw DataValidation.RequiredError("EntityId"); } Row = new TRow(); var isActiveRow = Row as IIsActiveRow; if (isActiveRow == null) { throw new NotImplementedException(); } var idField = (Field)Row.IdField; LoadEntity(); ValidateRequest(); if (isActiveRow.IsActiveField[Row] > 0) { Response.WasNotDeleted = true; } else { OnBeforeUndelete(); if (new SqlUpdate(Row.Table) .Set(isActiveRow.IsActiveField, 1) .WhereEqual(idField, request.EntityId.Value) .WhereEqual(isActiveRow.IsActiveField, -1) .Execute(Connection) != 1) { throw DataValidation.EntityNotFoundError(Row, request.EntityId.Value); } InvalidateCacheOnCommit(); OnAfterUndelete(); DoAudit(); } OnReturn(); return(Response); }