/// <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); }