コード例 #1
0
 public Result<UndeleteResponse> Undelete(UndeleteRequest request)
 {
     return this.InTransaction("Default", (uow) => new MyRepository().Undelete(uow, request));
 }
コード例 #2
0
 public UndeleteResponse Undelete(IUnitOfWork uow, UndeleteRequest request)
 {
     return new MyRepository().Undelete(uow, request);
 }
コード例 #3
0
 public UndeleteResponse Undelete(IUnitOfWork uow, UndeleteRequest request)
 {
     return(new MyRepository().Undelete(uow, request));
 }
コード例 #4
0
 public UndeleteResponse Undelete(IUnitOfWork uow, UndeleteRequest request)
 {
     return(new MyUndeleteHandler().Process(uow, request));
 }
コード例 #5
0
 public Result <UndeleteResponse> Undelete(UndeleteRequest request)
 {
     return(this.InTransaction("Default", (uow) => new MyRepository().Undelete(uow, request)));
 }
コード例 #6
0
 public static jQueryXmlHttpRequest Undelete(UndeleteRequest request, Action <UndeleteResponse> onSuccess, ServiceCallOptions options = null)
 {
     return(Q.ServiceRequest(Methods.Undelete, request, onSuccess, options));
 }
コード例 #7
0
 public static jQueryXmlHttpRequest Undelete(UndeleteRequest request, Action <UndeleteResponse> onSuccess = null, ServiceCallOptions options = null)
 {
     return(null);
 }
コード例 #8
0
 public static jQueryXmlHttpRequest Undelete(UndeleteRequest request, Action <UndeleteResponse> onSuccess, ServiceCallOptions options = null)
 {
     return(Q.ServiceRequest("TvHastanesi/ServiceTicket/Undelete", request, onSuccess, options));
 }
コード例 #9
0
 public static jQueryXmlHttpRequest Undelete(UndeleteRequest request, Action <UndeleteResponse> onSuccess, ServiceCallOptions options = null)
 {
     return(Q.ServiceRequest("Meeting/MeetingAttendeeType/Undelete", request, onSuccess, options));
 }
コード例 #10
0
 public static jQueryXmlHttpRequest Undelete(UndeleteRequest request, Action <UndeleteResponse> onSuccess, ServiceCallOptions options = null)
 {
     return(Q.ServiceRequest("Administration/User/Undelete", request, onSuccess, options));
 }
コード例 #11
0
        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);
        }