Exemple #1
0
        public async Task <string> CheckUpdateFarmInfoCmdValidatableAsync(UpdateFarmInfoCmd cmd)
        {
            if (cmd.Id.IsNullOrWhiteSpace())
            {
                return("请指定所选农场");
            }
            if (!await _farmService.ExistFarmInfoAsync(cmd.Id).ConfigureAwait(false))
            {
                return("农场不存在");
            }
            var farmInfo = await _farmService.GetFarmInfoAsync(cmd.Id).ConfigureAwait(false);

            if (!cmd.Name.IsNullOrWhiteSpace() && cmd.Name != farmInfo.Name && await _farmService.ExistFarmInfoByNameAsync(cmd.Name).ConfigureAwait(false))
            {
                return("农场名称已存在");
            }
            if (!cmd.Telephone.IsNullOrWhiteSpace() && cmd.Telephone != farmInfo.Telephone && await _farmService.ExistFarmInfoByTelephoneAsync(cmd.Name).ConfigureAwait(false))
            {
                return("农场电话已存在");
            }
            if (!cmd.PersonLiable.IsNullOrWhiteSpace())
            {
                if (cmd.PersonLiable.Trim().Length != 24)
                {
                    return("农场责任人不存在");
                }
                if (await _memberService.ExistMemberInfoAsync(cmd.PersonLiable).ConfigureAwait(false))
                {
                    return("农场责任人不存在");
                }
            }
            return(null);
        }
        public async Task <string> UpdateFarmInfoAsync(UpdateFarmInfoCmd cmd, string currentMemberId)
        {
            var timeNow  = DateTime.Now;
            var farmInfo = await GetFarmInfoAsync(cmd.Id).ConfigureAwait(false);

            farmInfo.ModifiedOn = timeNow;
            farmInfo.ModifiedBy = currentMemberId;
            if (cmd.MainImg != null)
            {
                var extension    = cmd.MainImg.Name.Split('.').LastOrDefault();
                var fileName     = ObjectId.NewId();
                var fileFullName = fileName + "." + extension;
                var path         = Path.Combine(GetUploadDirectory(), fileFullName);
                using (FileStream destinationStream = File.Create(path))
                {
                    await cmd.MainImg.Value.CopyToAsync(destinationStream).ConfigureAwait(false);
                }
                farmInfo.MainImg   = fileName;
                farmInfo.Extension = extension;
            }
            if (!cmd.Name.IsNullOrWhiteSpace())
            {
                farmInfo.Name = cmd.Name.Trim();
            }
            if (cmd.Longitude.HasValue)
            {
                farmInfo.Longitude = cmd.Longitude.Value;
            }
            if (cmd.Latitude.HasValue)
            {
                farmInfo.Latitude = cmd.Latitude.Value;
            }
            if (!cmd.Description.IsNullOrWhiteSpace() & cmd.Description.Trim() != farmInfo.Description)
            {
                farmInfo.Description = cmd.Description.Trim();
            }
            if (!cmd.Remark.IsNullOrWhiteSpace() && cmd.Remark.Trim() != farmInfo.Remark)
            {
                farmInfo.Remark = cmd.Remark.Trim();
            }
            if (!cmd.Address.IsNullOrWhiteSpace() && cmd.Address.Trim() != farmInfo.Address)
            {
                farmInfo.Address = cmd.Address.Trim();
            }
            if (!cmd.Telephone.IsNullOrWhiteSpace() && cmd.Telephone.Trim() != farmInfo.Telephone)
            {
                farmInfo.Telephone = cmd.Telephone.Trim();
            }
            if (cmd.Type.HasValue && cmd.Type != farmInfo.Type)
            {
                farmInfo.Type = cmd.Type.Value;
            }
            if (!cmd.PersonLiable.IsNullOrWhiteSpace() && cmd.PersonLiable.Trim() != farmInfo.PersonLiable)
            {
                farmInfo.PersonLiable = cmd.PersonLiable.Trim();
            }
            if (cmd.Status.HasValue && cmd.Status.Value != farmInfo.Status)
            {
                farmInfo.Status = cmd.Status.Value;
            }
            using (var conn = CreateConnection())
            {
                await conn.UpdateAsync(farmInfo).ConfigureAwait(false);

                return(farmInfo.Id);
            };
        }