예제 #1
0
        public async Task <IResultModel> Add(OrganizeAddModel model)
        {
            if (await _organizeRepository.ExistsAsync(m => (m.OrganizeCode == model.OrganizeCode || m.OrganizeName == model.OrganizeName) && m.IsDel == false))
            {
                return(ResultModel.HasExists);
            }

            var entity = _mapper.Map <OrganizeEntity>(model);

            if (entity.ParentId == Guid.Empty.ToString("N"))
            {
                entity.OrganizeFullName = $"{entity.OrganizeName}";
            }
            else
            {
                var parent = await _organizeRepository.FirstAsync(m => m.Id == entity.ParentId);

                if (parent != null)
                {
                    entity.Level            = parent.Level + 1;
                    entity.OrganizeFullName = $"{parent.OrganizeFullName}/{entity.OrganizeName}";
                }
            }

            var result = await _organizeRepository.InsertAsync(entity);

            if (result)
            {
                return(ResultModel.Success(entity));
            }

            return(ResultModel.Failed());
        }