private async Task <byte[]> UpdateCompanyLogo(TenantExtendedUnitInput input) { var tempProfilePicturePath = Path.Combine(_appFolders.TempFileDownloadFolder, input.ComapanyLogo.FileName); byte[] byteArray; using (var fsTempProfilePicture = new FileStream(tempProfilePicturePath, FileMode.Open)) { using (var bmpImage = new Bitmap(fsTempProfilePicture)) { var width = input.ComapanyLogo.Width == 0 ? bmpImage.Width : input.ComapanyLogo.Width; var height = input.ComapanyLogo.Height == 0 ? bmpImage.Height : input.ComapanyLogo.Height; var bmCrop = bmpImage.Clone(new Rectangle(input.ComapanyLogo.X, input.ComapanyLogo.Y, width, height), bmpImage.PixelFormat); using (var stream = new MemoryStream()) { bmCrop.Save(stream, bmpImage.RawFormat); stream.Close(); byteArray = stream.ToArray(); } } } if (byteArray.LongLength > 1024000) //1000 KB { throw new UserFriendlyException(L("ResizedProfilePicture_Warn_SizeLimit")); } if (input.CompanyLogoId.HasValue) { await _binaryObjectManager.DeleteAsync(input.CompanyLogoId.Value); } var storedFile = new BinaryObject(AbpSession.TenantId, byteArray); await _binaryObjectManager.SaveAsync(storedFile); input.CompanyLogoId = storedFile.Id; return(byteArray); }
public async Task <CompanyImageOutputDto> UpdateCompanyUnit(TenantExtendedUnitInput input) { int tenantid = AbpSession.GetTenantId(); byte[] byteArray = null; //using (_unitOfWorkManager.Current.SetTenantId(null)) //{ // var tenant = await TenantManager.GetByIdAsync(tenantid); // tenant.Name = input.TenantName; // CheckErrors(await TenantManager.UpdateAsync(tenant)); //} CompanyImageOutputDto companyLogo = new CompanyImageOutputDto(); using (_unitOfWorkManager.Current.SetTenantId(tenantid)) { if (input.TenantExtendedId > 0) { if (!ReferenceEquals(input.ComapanyLogo, null)) { byteArray = await UpdateCompanyLogo(input); } var tenant = await _tenantExtendedUnitRepository.GetAsync(input.TenantExtendedId); Mapper.Map(input, tenant); await _tenantExtendedManager.UpdateAsync(tenant); companyLogo.TenantExtendedId = tenant.Id; // update address Information if (!ReferenceEquals(input.Address, null)) { if (input.Address.AddressId != 0) { input.Address.TypeofObjectId = TypeofObject.OrganizationUnit; await _addressAppService.UpdateAddressUnit(input.Address); companyLogo.AddressId = input.Address.AddressId; } else { if (!string.IsNullOrEmpty(input.Address.Line1) || !string.IsNullOrEmpty(input.Address.Line2) || !string.IsNullOrEmpty(input.Address.Line3) || !string.IsNullOrEmpty(input.Address.Line4) || !string.IsNullOrEmpty(input.Address.State) || !string.IsNullOrEmpty(input.Address.Country) || !string.IsNullOrEmpty(input.Address.Email) || !string.IsNullOrEmpty(input.Address.Phone1) || !string.IsNullOrEmpty(input.Address.Website)) { input.Address.TypeofObjectId = TypeofObject.OrganizationUnit; input.Address.ObjectId = input.TenantExtendedId; // AutoMapper.Mapper.CreateMap<UpdateAddressUnitInput, CreateAddressUnitInput>(); //var config = new MapperConfiguration(cfg => { // cfg.CreateMap<UpdateAddressUnitInput, CreateAddressUnitInput>(); //}); var addr = await _addressAppService.CreateAddressUnit( AutoMapper.Mapper.Map <UpdateAddressUnitInput, CreateAddressUnitInput>(input.Address)); companyLogo.AddressId = addr.AddressId; } } } } else { if (!ReferenceEquals(input.ComapanyLogo, null)) { byteArray = await UpdateCompanyLogo(input); } var tenantExtended = input.MapTo <TenantExtendedUnit>(); int id = await _tenantExtendedManager.CreateAsync(tenantExtended); companyLogo.TenantExtendedId = id; //address Information if (!ReferenceEquals(input.Address, null)) { if (!string.IsNullOrEmpty(input.Address.Line1) || !string.IsNullOrEmpty(input.Address.Line2) || !string.IsNullOrEmpty(input.Address.Line4) || !string.IsNullOrEmpty(input.Address.Line4) || !string.IsNullOrEmpty(input.Address.State) || !string.IsNullOrEmpty(input.Address.Country) || !string.IsNullOrEmpty(input.Address.Email) || !string.IsNullOrEmpty(input.Address.Phone1) || !string.IsNullOrEmpty(input.Address.ContactNumber)) { input.Address.TypeofObjectId = TypeofObject.OrganizationUnit; input.Address.ObjectId = id; // AutoMapper.Mapper.CreateMap<UpdateAddressUnitInput, CreateAddressUnitInput>(); var config = new MapperConfiguration(cfg => { cfg.CreateMap <UpdateAddressUnitInput, CreateAddressUnitInput>(); }); var addr = await _addressAppService.CreateAddressUnit( AutoMapper.Mapper.Map <UpdateAddressUnitInput, CreateAddressUnitInput>(input.Address)); companyLogo.AddressId = addr.AddressId; } } } await CurrentUnitOfWork.SaveChangesAsync(); if (byteArray != null) { companyLogo.CompanyLogo = Convert.ToBase64String(byteArray); companyLogo.CompanyLogoId = input.CompanyLogoId; } return(companyLogo); } }