Пример #1
0
        public Response <T> View(T model, ICoreUser user)
        {
            var result = new Response <T>();

            if (!RunViewBusinessLogic(new InterfaceLoader <IViewRule <T> >(), result, model))
            {
                return(result);
            }

            if (!RunViewDataLogic(new InterfaceLoader <IViewEvent <T> >(), result, model))
            {
                return(result);
            }

            result.Success = true;
            return(result);
        }
Пример #2
0
        public Response <T> Insert(T model, ICoreUser user)
        {
            var result = new Response <T>();

            if (!RunInsertBusinessLogic(new InterfaceLoader <IInsertRule <T> >(), result, model, user))
            {
                return(result);
            }

            if (!RunInsertDataLogic(new InterfaceLoader <IInsertEvent <T> >(), result, model))
            {
                return(result);
            }

            result.Success = true;
            return(result);
        }
Пример #3
0
        public NgTable <T> List(NgTableParams ngTableParams, ICoreUser user)
        {
            var result = new NgTable <T>();

            if (!RunViewListBusinessLogic(new InterfaceLoader <IViewListRule <T, T2> >(), result, ngTableParams, user))
            {
                return(result);
            }

            if (!RunViewListDataLogic(new InterfaceLoader <IViewListEvent <T, T2> >(), result, ngTableParams, user))
            {
                return(result);
            }

            result.Success = true;
            return(result);
        }
Пример #4
0
        public Response <T> Delete(T model, ICoreUser user)
        {
            var result = new Response <T>();

            if (!RunDeleteBusinessLogic(new InterfaceLoader <IDeleteRule <T> >(), result, model))
            {
                return(result);
            }

            if (!RunDeleteDataLogic(new InterfaceLoader <IDeleteEvent <T> >(), result, model))
            {
                return(result);
            }

            result.Success = true;
            return(result);
        }
Пример #5
0
        public async Task <NgTable <T> > List(NgTableParams ngTableParams, ICoreUser user)
        {
            var result = new NgTable <T>();

            //if (!RunRepoLogic(new InterfaceLoader<IRepoRule<T, T2>>(), result, model, user))
            //    return result;

            if (!RunViewListBusinessLogic(new InterfaceLoader <IViewListRule <T, T2> >(), result, ngTableParams, user))
            {
                return(result);
            }

            if (!RunViewListDataLogic(new InterfaceLoader <IViewListEvent <T, T2> >(), result, ngTableParams, user))
            {
                return(result);
            }

            result.Success = true;
            return(result);
        }
Пример #6
0
        public Response <T> Update(T model, ICoreUser user)
        {
            var result = new Response <T>();

            if (!RunRepoLogic(new InterfaceLoader <IRepoRule <T, T2> >(), result, model, user))
            {
                return(result);
            }

            if (!RunUpdateBusinessLogic(new InterfaceLoader <IUpdateRule <T, T2> >(), result, model, user))
            {
                return(result);
            }

            if (!RunUpdateDataLogic(new InterfaceLoader <IUpdateEvent <T, T2> >(), result, model, user))
            {
                return(result);
            }

            result.Success = true;
            return(result);
        }
Пример #7
0
        public bool Run(NgTableParams model, ref IQueryable <Database.Job> repository, NgTable <JobViewModel> result, ICoreUser Job, IUnitOfWork db)
        {
            var ngTransformer = new QueryToNgTable <JobViewModel>();

            var query = JobMapper.MapDbModelQueryToViewModelQuery(repository);

            ngTransformer.ToNgTableDataSet(model, query, result);
            return(true);
        }
        public bool Run(AomFieldMetaViewModel model, ref IQueryable <AomFieldMeta> repository, IUnitOfWork unitOfWork, Response <AomFieldMetaViewModel> result, ICoreUser user)
        {
            var dbModel        = repository.Single(c => c.Id == model.Id); // you need to be using the primary key could be composit
            var updatedDbModel = AomFieldMetaMapper.MapInsertModelToDbModel(model, dbModel);

            unitOfWork.With <AomFieldMeta>().AddOrUpdate(updatedDbModel);
            unitOfWork.SaveChanges();
            var newCustomResult = AomFieldMetaMapper.MapDbModelToViewModel(updatedDbModel);

            result.Data = newCustomResult;
            return(true);
        }
Пример #9
0
 public bool Run(NgTableParams model, ref IQueryable <AomFieldObject> repository, NgTable <AomFieldObjectViewModel> result, ICoreUser user, IUnitOfWork unitOfWork)
 {
     // unitOfWork = unitOfWork.Where(c => c.OwnerId == null);
     // limit by organisation owner etc... business rules
     return(true);
 }
Пример #10
0
        public bool Run(NgTableParams model, ref IQueryable <AomFieldObject> repository, NgTable <AomFieldObjectViewModel> result, ICoreUser user, IUnitOfWork db)
        {
            var ngTransformer = new QueryToNgTable <AomFieldObjectViewModel>();

            var query = AomFieldObjectMapper.MapDbModelQueryToViewModelQuery(repository);

            ngTransformer.ToNgTableDataSet(model, query, result);
            return(true);
        }
Пример #11
0
 public bool Run(NgTableParams model, ref IQueryable <AomObject> repository, NgTable <AomObject> result, ICoreUser user, IUnitOfWork unitOfWork)
 {
     // limit by organisation owner etc... business rules
     //   throw new NotImplementedException();
 }
Пример #12
0
        public bool Run(UserViewModel model, IUnitOfWork unitOfWork, Response <UserViewModel> result, ICoreUser user)
        {
            var newCustom = UsersMapper.MapInsertModelToDbModel(model);

            unitOfWork.With <User>().Add(newCustom);
            unitOfWork.SaveChanges();
            var newCustomResult = UsersMapper.MapDbModelToViewModel(newCustom);

            result.Body = newCustomResult;
            return(true);
        }
Пример #13
0
 private bool RunViewListBusinessLogic(InterfaceLoader <IViewListRule <T, T2> > interfaceLoader, NgTable <T> result, NgTableParams ngTableParams, ICoreUser user)
 {
     foreach (var interfaceImplementation in interfaceLoader.InterfaceImplementations)
     {
         if (!interfaceImplementation.Run(ngTableParams, ref DbSet, result, user, UnitOfWork))
         {
             return(false);
         }
     }
     return(true);
 }
Пример #14
0
 private bool RunRepoLogic(InterfaceLoader <IRepoRule <T, T2> > interfaceLoader, Response <T> result, T model, ICoreUser user)
 {
     foreach (var interfaceImplementation in interfaceLoader.InterfaceImplementations)
     {
         if (!interfaceImplementation.Run(model, ref DbSet, UnitOfWork, result, user))
         {
             return(false);
         }
     }
     return(true);
 }
Пример #15
0
 private bool RunViewDataLogic(InterfaceLoader <IViewEvent <T, T2> > interfaceLoader, Response <T> result, T model, ICoreUser user)
 {
     foreach (var interfaceImplementation in interfaceLoader.InterfaceImplementations)
     {
         var viewResult = interfaceImplementation.Run(model, ref DbSet, UnitOfWork, result, user);
         if (!result.Success)
         {
             return(false);
         }
     }
     return(true);
 }
Пример #16
0
        public Response <EmployerViewModel> Run(EmployerViewModel model, ref IQueryable <Database.Employer> repository, IUnitOfWork unitOfWork, Response <EmployerViewModel> result, ICoreUser Employer)
        {
            var itemToUpdate = repository.SingleOrDefault(c => c.Id == model.Id);

            if (itemToUpdate != null)
            {
                var newCustomResult = EmployerMapper.MapDbModelToViewModel(itemToUpdate);
                result.Body    = newCustomResult;
                result.Success = true;
            }
            else
            {
                result.Success = false;
                result.LogError("Error viewing Employers");
            }

            return(result);
        }
Пример #17
0
        public bool Run(UserViewModel model, IUnitOfWork unitOfWork, Response <UserViewModel> result, ICoreUser user)
        {
            if (string.IsNullOrEmpty(model.Email))
            {
                result.Messages.Add(new Message
                {
                    MessageText   = "Email: Required",
                    SeverityLevel = "ErrorMessage"
                });
                return(false);
            }

            return(true);
        }
Пример #18
0
        private bool RunInsertDataLogic(InterfaceLoader <IInsertEvent <T> > interfaceLoader, Response <T> result, T model, ICoreUser user)
        {
            foreach (var interfaceImplementation in interfaceLoader.InterfaceImplementations)
            {
                try
                {
                    if (!interfaceImplementation.Run(model, UnitOfWork, result, user))
                    {
                        return(false);
                    }
                }
                catch (ObjectDisposedException ex)
                {
                    // LogHelper.Error(typeof(IService<T>), "ObjectDisposedException = ", ex);
                    result.LogError("Error with running IInsertEvent ");
                    return(false);
                }
                catch (InvalidOperationException ex)
                {
                    //    LogHelper.Error(typeof(IService<T>), "ObjectDisposedException = ", ex);
                    result.LogError("Error with running IInsertEvent ");
                    return(false);
                }
                catch (DbEntityValidationException ex)
                {
                    result.LogError("Error with running IInsertEvent ");
                    foreach (var eve in ex.EntityValidationErrors)
                    {
                        string errorString =
                            $"Entity of type {eve.Entry.Entity.GetType().Name} in state {eve.Entry.State} has the following validation errors:";

                        foreach (var ve in eve.ValidationErrors)
                        {
                            errorString +=
                                $"{Environment.NewLine} - Property: {ve.PropertyName}, Error: {ve.ErrorMessage}";
                        }

                        result.LogError(errorString);
                        //  LogHelper.Error(typeof(IService<T>), "DbEntityValidationException = ", ex);
                    }
                    result.LogError("Error with running IInsertEvent ");
                    return(false);
                }
                catch (DbUpdateConcurrencyException ex)
                {
                    //   LogHelper.Error(typeof(IService<T>), "DbUpdateConcurrencyException = ", ex);
                    result.LogError("Error with running IInsertEvent ");
                    return(false);
                }
                catch (DbUpdateException ex)
                {
                    //   LogHelper.Error(typeof(IService<T>), "DbUpdateException = ", ex);
                    result.LogError("Error with running IInsertEvent " + String.Join(Environment.NewLine, ex.GetInnerExceptions().Select(c => c.Message)));
                    return(false);
                }
                catch (Exception ex)
                {
                    //   LogHelper.Error(typeof(IService<T>), "Exception = ", ex);
                    result.LogError("Error with running IInsertEvent ");
                    return(false);
                }
            }
            return(true);
        }
Пример #19
0
        public Response <ToolsViewModel> Run(ToolsViewModel model, ref IQueryable <Tool> repository, IUnitOfWork unitOfWork, Response <ToolsViewModel> result, ICoreUser user)
        {
            var itemToUpdate = repository.SingleOrDefault(c => c.Id == model.Id);

            if (itemToUpdate != null)
            {
                var newCustomResult = ToolsMapper.MapDbModelToViewModel(itemToUpdate);
                result.Data    = newCustomResult;
                result.Success = true;
            }
            else
            {
                result.Success = false;
                result.LogError("Error viewing Tools");
            }

            return(result);
        }
Пример #20
0
        public Response <CandidateSkillViewModel> Run(CandidateSkillViewModel model, ref IQueryable <Database.CandidateSkill> repository, IUnitOfWork unitOfWork, Response <CandidateSkillViewModel> result, ICoreUser CandidateSkill)
        {
            var itemToUpdate = repository.SingleOrDefault(c => c.SkillId == model.SkillId && c.CandidateId == model.CandidateId);

            if (itemToUpdate != null)
            {
                var newCustomResult = CandidateSkillMapper.MapDbModelToViewModel(itemToUpdate);
                result.Body    = newCustomResult;
                result.Success = true;
            }
            else
            {
                result.Success = false;
                result.LogError("Error viewing CandidateSkills");
            }

            return(result);
        }
Пример #21
0
        public bool Run(CandidateResponseViewModel model, ref IQueryable <Database.CandidateResponse> repository, IUnitOfWork unitOfWork, Response <CandidateResponseViewModel> result, ICoreUser CandidateResponse)
        {
            var dbModel        = repository.Single(c => c.JobId == model.JobId && c.CandidateId == model.CandidateId); // you need to be using the primary key could be composit
            var updatedDbModel = CandidateResponseMapper.MapInsertModelToDbModel(model, dbModel);

            unitOfWork.With <Database.CandidateResponse>().Update(updatedDbModel);
            unitOfWork.SaveChanges();
            var newCustomResult = CandidateResponseMapper.MapDbModelToViewModel(updatedDbModel);

            result.Body = newCustomResult;
            return(true);
        }
Пример #22
0
        public bool Run(NgTableParams model, ref IQueryable <RelationshipMeta> repository, NgTable <RelationshipMetaViewModel> result, ICoreUser user, IUnitOfWork db)
        {
            var ngTransformer = new QueryToNgTable <RelationshipMetaViewModel>();

            var query = RelationshipMetaMapper.MapDbModelQueryToViewModelQuery(repository);

            ngTransformer.ToNgTableDataSet(model, query, result);
            return(true);
        }
Пример #23
0
        public bool Run(FieldTypesViewModel model, ref IQueryable <FieldType> repository, IUnitOfWork unitOfWork, Response <FieldTypesViewModel> result, ICoreUser user)
        {
            // Todo change id for the tables PK
            var customToRemove = unitOfWork.With <FieldType>().Find(model.Id);

            unitOfWork.With <FieldType>().Remove(customToRemove);
            unitOfWork.SaveChanges();
            return(true);
        }
Пример #24
0
        public bool Run(SkillViewModel model, IUnitOfWork unitOfWork, Response <SkillViewModel> result, ICoreUser Skill)
        {
            var newCustom = SkillMapper.MapInsertModelToDbModel(model);

            unitOfWork.With <Database.Skill>().Add(newCustom);
            unitOfWork.SaveChanges();
            var newCustomResult = SkillMapper.MapDbModelToViewModel(newCustom);

            result.Body = newCustomResult;
            return(true);
        }
Пример #25
0
        public bool Run(AomMetaViewModel model, ref IQueryable <AomMeta> repository, IUnitOfWork unitOfWork, Response <AomMetaViewModel> result, ICoreUser user)
        {
            var updatedDbModel  = unitOfWork.With <AomMeta>().Single(c => c.Id == model.Id); // Might be a partial class
            var newCustomResult = AomMetaMapper.MapDbModelToViewModel(updatedDbModel);

            result.Data = newCustomResult;
            return(true);
        }
Пример #26
0
        public bool Run(EmployerResponseViewModel model, ref IQueryable <Database.EmployerResponse> repository, IUnitOfWork unitOfWork, Response <EmployerResponseViewModel> result, ICoreUser EmployerResponse)
        {
            // Todo change id for the tables PK
            var customToRemove = unitOfWork.With <Database.EmployerResponse>().Find(model.CandidateId, model.JobId);

            unitOfWork.With <Database.EmployerResponse>().Remove(customToRemove);
            unitOfWork.SaveChanges();
            return(true);
        }
Пример #27
0
        public Guid CreatedId; // Might be a composite key!

        public bool Run(AomFieldMetaViewModel model, IUnitOfWork unitOfWork, Response <AomFieldMetaViewModel> result, ICoreUser user)
        {
            var newCustom = AomFieldMetaMapper.MapInsertModelToDbModel(model);

            unitOfWork.With <AomFieldMeta>().Add(newCustom);
            unitOfWork.SaveChanges();
            CreatedId = newCustom.Id;
            model.Id  = CreatedId; // Might be a composit key
            var newCustomResult = AomFieldMetaMapper.MapDbModelToViewModel(newCustom);

            result.Data = newCustomResult;
            return(true);
        }
Пример #28
0
        public bool Run(JobViewModel model, ref IQueryable <Database.Job> repository, IUnitOfWork unitOfWork, Response <JobViewModel> result, ICoreUser Job)
        {
            // Todo change id for the tables PK
            var customToRemove = unitOfWork.With <Database.Job>().Find(model.Id); unitOfWork.With <Database.Job>().Remove(customToRemove);

            unitOfWork.SaveChanges();
            return(true);
        }
Пример #29
0
        public bool Run(EmployerResponseViewModel model, IUnitOfWork unitOfWork, Response <EmployerResponseViewModel> result, ICoreUser EmployerResponse)
        {
            var newCustom = EmployerResponseMapper.MapInsertModelToDbModel(model);

            unitOfWork.With <Database.EmployerResponse>().Add(newCustom);
            unitOfWork.SaveChanges();
            var newCustomResult = EmployerResponseMapper.MapDbModelToViewModel(newCustom);

            result.Body = newCustomResult;
            return(true);
        }
Пример #30
0
 public UserController(ICoreUser coreUser)
 {
     _coreUser = coreUser;
 }