Exemple #1
0
        public async Task <Result <KAttributeDto> > GetAsync(Guid id)
        {
            var resService = new Result <KAttributeDto>();

            try
            {
                var ctx         = GetOpenConnection();
                var kattributes = new GenericRepositoryEF <KntDbContext, KAttribute>(ctx);

                var resRep = await kattributes.GetAsync((object)id);

                if (!resRep.IsValid)
                {
                    CopyErrorList(resRep.ErrorList, resService.ErrorList);
                }
                resRep = kattributes.LoadCollection(resRep.Entity, tv => tv.KAttributeTabulatedValues);
                if (!resRep.IsValid)
                {
                    CopyErrorList(resRep.ErrorList, resService.ErrorList);
                }
                //
                resService.Entity = resRep.Entity?.GetSimpleDto <KAttributeDto>();
                resService.Entity.KAttributeValues = resRep.Entity?.KAttributeTabulatedValues?
                                                     .Select(_ => _.GetSimpleDto <KAttributeTabulatedValueDto>()).OrderBy(_ => _.Order).ToList();

                await CloseIsTempConnection(ctx);
            }
            catch (Exception ex)
            {
                AddExecptionsMessagesToErrorsList(ex, resService.ErrorList);
            }
            return(ResultDomainAction(resService));
        }
Exemple #2
0
        public async Task <Result <FolderDto> > GetAsync(Guid?folderId, int?folderNumber)
        {
            var resService = new Result <FolderDto>();

            try
            {
                var ctx     = GetOpenConnection();
                var folders = new GenericRepositoryEF <KntDbContext, Folder>(ctx);

                Result <Folder> resRep;
                if (folderId != null)
                {
                    resRep = await folders.GetAsync((object)folderId);
                }
                else
                {
                    resRep = await folders.GetAsync(f => f.FolderNumber == folderNumber);
                }

                // KNote template ... load here aditionals properties for FolderDto
                resRep = folders.LoadReference(resRep.Entity, n => n.ParentFolder);

                // Map to dto
                resService.Entity = resRep.Entity?.GetSimpleDto <FolderDto>();
                resService.Entity.ParentFolderDto = new FolderDto();
                resService.Entity.ParentFolderDto = resRep.Entity?.ParentFolder?.GetSimpleDto <FolderDto>();

                var resultChilds = await GetTreeAsync(resService.Entity.FolderId);

                resService.Entity.ChildFolders = resultChilds.Entity;

                resService.ErrorList = resRep.ErrorList;

                await CloseIsTempConnection(ctx);
            }
            catch (Exception ex)
            {
                AddExecptionsMessagesToErrorsList(ex, resService.ErrorList);
            }
            return(ResultDomainAction(resService));
        }
        public async Task <Result <NoteTypeDto> > GetAsync(Guid id)
        {
            var response = new Result <NoteTypeDto>();

            try
            {
                var ctx       = GetOpenConnection();
                var noteTypes = new GenericRepositoryEF <KntDbContext, NoteType>(ctx);

                var resGenRep = await noteTypes.GetAsync((object)id);

                response.Entity    = resGenRep.Entity?.GetSimpleDto <NoteTypeDto>();
                response.ErrorList = resGenRep.ErrorList;

                await CloseIsTempConnection(ctx);
            }
            catch (Exception ex)
            {
                AddExecptionsMessagesToErrorsList(ex, response.ErrorList);
            }
            return(ResultDomainAction(response));
        }
Exemple #4
0
        public async Task <Result <SystemValueDto> > GetAsync(string scope, string key)
        {
            var resService = new Result <SystemValueDto>();

            try
            {
                var ctx          = GetOpenConnection();
                var systemValues = new GenericRepositoryEF <KntDbContext, SystemValue>(ctx);

                var resRep = await systemValues.GetAsync(sv => sv.Scope == scope && sv.Key == key);

                resService.Entity    = resRep.Entity?.GetSimpleDto <SystemValueDto>();
                resService.ErrorList = resRep.ErrorList;

                await CloseIsTempConnection(ctx);
            }
            catch (Exception ex)
            {
                AddExecptionsMessagesToErrorsList(ex, resService.ErrorList);
            }
            return(ResultDomainAction(resService));
        }
Exemple #5
0
        public async Task <Result <FolderDto> > UpdateAsync(FolderDto entity)
        {
            var resGenRep = new Result <Folder>();
            var response  = new Result <FolderDto>();

            try
            {
                var ctx     = GetOpenConnection();
                var folders = new GenericRepositoryEF <KntDbContext, Folder>(ctx);

                var resGenRepGet = await folders.GetAsync(entity.FolderId);

                Folder entityForUpdate;

                if (resGenRepGet.IsValid)
                {
                    entityForUpdate = resGenRepGet.Entity;
                    entityForUpdate.SetSimpleDto(entity);
                    entityForUpdate.ModificationDateTime = DateTime.Now;
                    resGenRep = await folders.UpdateAsync(entityForUpdate);
                }
                else
                {
                    resGenRep.Entity = null;
                    resGenRep.AddErrorMessage("Can't find entity for update.");
                }

                response.Entity    = resGenRep.Entity?.GetSimpleDto <FolderDto>();
                response.ErrorList = resGenRep.ErrorList;

                await CloseIsTempConnection(ctx);
            }
            catch (Exception ex)
            {
                AddExecptionsMessagesToErrorsList(ex, response.ErrorList);
            }

            return(ResultDomainAction(response));
        }
Exemple #6
0
        public async Task <Result <SystemValueDto> > UpdateAsync(SystemValueDto entity)
        {
            var resGenRep = new Result <SystemValue>();
            var response  = new Result <SystemValueDto>();

            try
            {
                var ctx          = GetOpenConnection();
                var systemValues = new GenericRepositoryEF <KntDbContext, SystemValue>(ctx);

                var resGenRepGet = await systemValues.GetAsync(entity.SystemValueId);

                SystemValue entityForUpdate;

                if (resGenRepGet.IsValid)
                {
                    entityForUpdate = resGenRepGet.Entity;
                    entityForUpdate.SetSimpleDto(entity);
                    resGenRep = await systemValues.UpdateAsync(entityForUpdate);
                }
                else
                {
                    resGenRep.Entity = null;
                    resGenRep.AddErrorMessage("Can't find entity for update.");
                }

                response.Entity    = resGenRep.Entity?.GetSimpleDto <SystemValueDto>();
                response.ErrorList = resGenRep.ErrorList;

                await CloseIsTempConnection(ctx);
            }
            catch (Exception ex)
            {
                AddExecptionsMessagesToErrorsList(ex, response.ErrorList);
            }

            return(ResultDomainAction(response));
        }
Exemple #7
0
        public async Task <Result <UserDto> > GetAsync(Guid userId)
        {
            var resService = new Result <UserDto>();

            try
            {
                var ctx   = GetOpenConnection();
                var users = new GenericRepositoryEF <KntDbContext, User>(ctx);

                var resRep = await users.GetAsync((object)userId);

                resService.Entity = resRep.Entity?.GetSimpleDto <UserDto>();

                resService.ErrorList = resRep.ErrorList;

                await CloseIsTempConnection(ctx);
            }
            catch (Exception ex)
            {
                AddExecptionsMessagesToErrorsList(ex, resService.ErrorList);
            }
            return(ResultDomainAction(resService));
        }
Exemple #8
0
        public async Task <Result <KAttributeDto> > UpdateAsync(KAttributeDto entity)
        {
            var resGenRep = new Result <KAttribute>();
            var response  = new Result <KAttributeDto>();

            try
            {
                using (TransactionScope scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    var ctx         = GetOpenConnection();
                    var kattributes = new GenericRepositoryEF <KntDbContext, KAttribute>(ctx);

                    var resGenRepGet = await kattributes.GetAsync(entity.KAttributeId);

                    KAttribute entityForUpdate;

                    if (resGenRepGet.IsValid)
                    {
                        // Check notetype in notes.
                        if (entity.NoteTypeId != null && resGenRepGet.Entity.NoteTypeId != entity.NoteTypeId)
                        {
                            var noteKAttributes = new GenericRepositoryEF <KntDbContext, NoteKAttribute>(ctx);
                            var nAttributes     = (await noteKAttributes.GetAllAsync(n => n.KAttributeId == entity.KAttributeId)).Entity;
                            if (nAttributes.Count > 0)
                            {
                                response.AddErrorMessage("You can not change the note type for this attribute. This attribute is already being used by several notes. ");
                                response.Entity = entity;
                            }
                        }

                        if (response.IsValid)
                        {
                            entityForUpdate = resGenRepGet.Entity;
                            entityForUpdate.SetSimpleDto(entity);

                            resGenRep = await kattributes.UpdateAsync(entityForUpdate);

                            response.Entity = resGenRep.Entity?.GetSimpleDto <KAttributeDto>();

                            var guidsUpdated = new List <Guid>();
                            foreach (var value in entity.KAttributeValues)
                            {
                                var res = await SaveTabulateValueAsync(ctx, response.Entity.KAttributeId, value);

                                if (!res.IsValid)
                                {
                                    response.ErrorList.Add(res.Message);
                                }
                                response.Entity.KAttributeValues.Add(res.Entity);
                                guidsUpdated.Add(value.KAttributeTabulatedValueId);
                            }

                            await DeleteNoContainsTabulateValueAsync(ctx, response.Entity.KAttributeId, guidsUpdated);

                            response.ErrorList = resGenRep.ErrorList;
                        }
                    }
                    else
                    {
                        response.Entity = entity;
                        response.AddErrorMessage("Can't find entity for update.");
                    }

                    scope.Complete();

                    await CloseIsTempConnection(ctx);
                }
            }
            catch (Exception ex)
            {
                AddExecptionsMessagesToErrorsList(ex, response.ErrorList);
            }

            return(ResultDomainAction(response));
        }