コード例 #1
0
        public async Task <BuildingResponse> FindByIdAsync(string userid, string id, CancellationToken cancellationToken = default(CancellationToken))
        {
            var query = _buildingsStore.GetDetailQuery();

            query = query.Where(x => x.Id == id);
            if (await query.CountAsync() == 0)
            {
                return(null);
            }

            string fr = ApplicationCore.ApplicationContext.Current.FileServerRoot;

            fr = (fr ?? "").TrimEnd('/');

            var building = await query.FirstOrDefaultAsync(cancellationToken);

            building.Icon = string.IsNullOrEmpty(building.Icon) ? "" : fr + "/" + building.Icon.TrimStart('/');
            BuildingResponse buildingResponse = _mapper.Map <BuildingResponse>(building);

            buildingResponse.FileList       = new List <FileItemResponse>();
            buildingResponse.AttachmentList = new List <AttachmentResponse>();

            if (building.BuildingFileInfos != null && building.BuildingFileInfos.Count() > 0)
            {
                var f = building.BuildingFileInfos.Select(a => a.FileGuid).Distinct();
                foreach (var item in f)
                {
                    var f1 = building.BuildingFileInfos.Where(a => a.Type != "Attachment" && a.FileGuid == item).ToList();
                    if (f1?.Count > 0)
                    {
                        buildingResponse.FileList.Add(ConvertToFileItem(item, f1));
                    }
                    var f2 = building.BuildingFileInfos.Where(a => a.Type == "Attachment" && a.FileGuid == item).ToList();
                    if (f2?.Count > 0)
                    {
                        buildingResponse.AttachmentList.AddRange(ConvertToAttachmentItem(f2));
                    }
                }
            }
            buildingResponse.IsFavorite = await _ibuildingFavoritesStore.GetAsync(x => x.Where(y => y.UserId == userid && y.BuildingId == buildingResponse.Id && !y.IsDeleted)) == null ? false : true;

            var asdasd = (await _ipermissionExpansionManager.GetUseridsHaveOrganPermission(buildingResponse.OrganizationId, "MyManagerBuildings")).FirstOrDefault();

            var user = await _iuserStore.GetAsync(x => x.Where(y => y.Id == asdasd));

            buildingResponse.ResidentUserManager = new UserInfo
            {
                Id          = user?.Id,
                UserName    = user?.TrueName,
                PhoneNumber = user?.PhoneNumber
            };



            return(buildingResponse);
        }
コード例 #2
0
        public static BuildingResponse ToModel(this BuildingDTO building)
        {
            BuildingResponse model = new BuildingResponse
            {
                Id            = building.Id,
                Name          = building.Name,
                NumberOfUnits = building.NumberOfUnits,
                Address       = building.Address
            };

            return(model);
        }
コード例 #3
0
        /// <summary>
        /// Gets the buildings.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public BuildingResponse GetBuildings(BuildingRequest request)
        {
            var response = new BuildingResponse();

            if (request.LoadOptions.Contains("Buildings"))
            {
                response.Buildings = request.LoadOptions.Contains("IsActive")
                                                ? BuildingDao.GetBuildingsByActive(true)
                                                : BuildingDao.GetBuildings();
            }
            if (request.LoadOptions.Contains("Building"))
            {
                response.Building = BuildingDao.GetBuilding(request.BuildingId);
            }

            return(response);
        }
コード例 #4
0
        /// <summary>
        /// Sets the buildings.
        /// </summary>
        /// <param name="request">The request.</param>
        /// <returns></returns>
        public BuildingResponse SetBuildings(BuildingRequest request)
        {
            var response = new BuildingResponse();

            var buildingEntity = request.Building;

            if (request.Action != PersistType.Delete)
            {
                if (!buildingEntity.Validate())
                {
                    foreach (string error in buildingEntity.ValidationErrors)
                    {
                        response.Message += error + Environment.NewLine;
                    }
                    response.Acknowledge = AcknowledgeType.Failure;
                    return(response);
                }
            }
            try
            {
                if (request.Action == PersistType.Insert)
                {
                    var buildingByCode = BuildingDao.GetBuildingsByBuildingCode(buildingEntity.BuildingCode);
                    if (buildingByCode != null && buildingByCode.Count > 0)
                    {
                        response.Acknowledge = AcknowledgeType.Failure;
                        response.Message     = @"Mã thuê nhà " + buildingEntity.BuildingCode + @" đã tồn tại !";
                        return(response);
                    }

                    AutoNumberListDao.UpdateIncreateAutoNumberListByValue("Building");
                    buildingEntity.BuildingId = BuildingDao.InsertBuilding(buildingEntity);
                    if (buildingEntity.BuildingId == 0)
                    {
                        response.Acknowledge  = AcknowledgeType.Failure;
                        response.RowsAffected = 0;
                        return(response);
                    }
                    response.Message = null;
                }
                else if (request.Action == PersistType.Update)
                {
                    var buildingByCode = BuildingDao.GetBuildingsByBuildingCode(buildingEntity.BuildingCode);
                    if (buildingByCode != null && buildingByCode.Count > 0)
                    {
                        if (buildingByCode.Where(w => w.BuildingId != buildingEntity.BuildingId).Count() > 0)
                        {
                            response.Acknowledge = AcknowledgeType.Failure;
                            response.Message     = @"Mã thuê nhà " + buildingByCode.FirstOrDefault().BuildingCode + @" đã tồn tại !";
                            return(response);
                        }
                    }

                    response.Message = BuildingDao.UpdateBuilding(buildingEntity);
                    if (response.Message != null)
                    {
                        response.Acknowledge  = AcknowledgeType.Failure;
                        response.RowsAffected = 0;
                        return(response);
                    }
                }
                else
                {
                    var buildingForUpdate = BuildingDao.GetBuilding(request.BuildingId);
                    response.Message = BuildingDao.DeleteBuilding(buildingForUpdate);
                    if (response.Message != null)
                    {
                        response.Acknowledge  = AcknowledgeType.Failure;
                        response.RowsAffected = 0;
                        return(response);
                    }
                }
            }
            catch (Exception ex)
            {
                response.Acknowledge = AcknowledgeType.Failure;
                response.Message     = ex.Message;
                return(response);
            }
            response.BuildingId  = buildingEntity != null ? buildingEntity.BuildingId : 0;
            response.Acknowledge = AcknowledgeType.Success;

            return(response);
        }