Пример #1
0
        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);
        }
Пример #2
0
        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);
            }
        }