Пример #1
0
 /// <summary>
 /// Deletes an element.
 /// </summary>
 /// <param name="tenantId">The tenant that element to delete belongs to.</param>
 /// <param name="elementTypeId">Identifies the type of element to delete.</param>
 /// <param name="elementId">Identifies the element to delete.</param>
 /// <param name="unitOfWork">Unit of work.</param>
 public void Delete(long tenantId, Guid elementTypeId, long elementId, IUnitOfWork unitOfWork = null)
 {
     try
     {
         IAdvancedElementService customElementService   = (IAdvancedElementService)_elementFactory.GetElementService(elementTypeId);
         ICustomElementValidator customElementValidator = _elementFactory.GetElementValidator(elementTypeId);
         IUnitOfWork             localUnitOfWork        = (unitOfWork == null && customElementService != null) ? _unitOfWorkFactory.CreateUnitOfWork() : null;
         try
         {
             if (customElementValidator != null)
             {
                 customElementValidator.ValidateDelete(tenantId, elementTypeId, elementId, unitOfWork ?? localUnitOfWork);
             }
             if (customElementService != null)
             {
                 customElementService.Delete(tenantId, elementId, unitOfWork ?? localUnitOfWork);
             }
             _elementRepository.Delete(tenantId, elementId, unitOfWork ?? localUnitOfWork);
             if (localUnitOfWork != null)
             {
                 localUnitOfWork.Commit();
             }
         }
         catch
         {
             if (localUnitOfWork != null)
             {
                 localUnitOfWork.Rollback();
             }
             throw;
         }
         finally
         {
             if (localUnitOfWork != null)
             {
                 localUnitOfWork.Dispose();
             }
         }
     }
     catch (ValidationErrorException)
     {
         throw;
     }
     catch (Exception ex)
     {
         throw new ValidationErrorException(new ValidationError(null, ApplicationResource.UnexpectedErrorMessage), ex);
     }
 }
 public ActionResult DeleteElement(FormCollection form)
 {
     if (form["operation"] == "Delete")
     {
         try
         {
             el.Delete(Convert.ToInt32(form["atomicNumber"]));
         }
         catch (ArgumentException)
         {
             return(Redirect("/Error/KnownError/delete"));
         }
         catch (Exception)
         {
             return(Redirect("/Error/Index/"));
         }
     }
     return(Redirect("/Element/ShowTable"));
 }