Esempio n. 1
0
        /// <summary>
        /// 处理设施添加数据
        /// </summary>
        /// <param name="facility">设施添加数据</param>
        /// <returns></returns>
        public async Task <XResponseMessage> ProcessAsync(FacilityModel facility)
        {
            if (facility == null)
            {
                return(null);
            }
            if (!await _farmService.ExistsAsync(facility.Farm))
            {
                return(ResultHelper.CreateMessage("基地不存在", ErrorType.FarmNotExists));
            }

            var facilityType = await _facilityTypeService.GetByIdAsync(facility.FacilityType); //不存在的设施类型无法添加

            if (facilityType == null)
            {
                return(ResultHelper.CreateMessage("设施类型不存在", ErrorType.FacilityTypeNotExists));
            }

            var item = await _facilityService.GetFacilityByIdAsny(facility.Serialnum);

            //数据库中不存在该设施
            if (item != null)
            {
                return(null);
            }
            item = new FacilityDto
            {
                Serialnum             = facility.Serialnum,
                Name                  = facility.Name,
                FarmSerialnum         = facility.Farm,
                FacilityTypeSerialnum = facility.FacilityType,
                CreateTime            = DateTime.Now,
                UpdateTime            = facility.CreateTime ?? DateTime.Now,
                Status                = 1,
                Sort                  = 0
            };
            try
            {
                var result = await _facilityService.AddFacility(item);

                LogHelper.Info("[设施]设施{0}{1}添加{2}", item.Name, item.Serialnum, result);
                return(ResultHelper.CreateMessage($"添加设施{(result ? "成功" : "失败")}",
                                                  result ? ErrorType.NoError : ErrorType.InternalError));
            }
            catch (AggregateException ex)
            {
                return(ResultHelper.CreateExceptionMessage(ex, "添加设施失败"));
            }
        }
        /// <summary>
        /// 更新设施
        /// </summary>
        /// <param name="facility">设施更新数据</param>
        /// <returns></returns>
        public async Task <XResponseMessage> ProcessAsync(FacilityModel facility)
        {
            if (facility == null)
            {
                return(null);
            }
            if (!_facilityService.CheckCode(facility.Serialnum))
            {
                return(ResultHelper.CreateMessage("设施不存在", ErrorType.FacilityNotExists));
            }
            var facilityType = await _facilityTypeService.GetByIdAsync(facility.FacilityType); //不存在的设施类型无法更新

            if (facilityType == null)
            {
                return(ResultHelper.CreateMessage("设施类型不存在", ErrorType.FacilityTypeNotExists));
            }
            var item = await _facilityService.GetFacilityByIdAsny(facility.Serialnum);

            //数据库中存在该设施并且创建时间大于最新的更新时间
            if (item == null || !(facility.CreateTime > item.UpdateTime))
            {
                return(null);
            }
            item.Serialnum             = facility.Serialnum;
            item.Name                  = facility.Name;
            item.FarmSerialnum         = facility.Farm;
            item.FacilityTypeSerialnum = facility.FacilityType;
            item.UpdateTime            = facility.CreateTime ?? DateTime.Now;
            item.FarmSerialnum         = facility.Farm;
            try
            {
                var result = await _facilityService.UpdateFacilityAsnyc(item);

                LogHelper.Info("[设施]设施{0}{1}更新{2}", item.Name, item.Serialnum, result);
                return(ResultHelper.CreateMessage($"更新设施{(result ? "成功" : "失败")}",
                                                  result ? ErrorType.NoError : ErrorType.InternalError));
            }
            catch (AggregateException ex)
            {
                return(ResultHelper.CreateExceptionMessage(ex, "更新设施失败"));
            }

            return(null);
        }