Example #1
0
        public virtual async Task <ActionResult> ResetPassword(ResetPasswordViewModel model)
        {
            Guid guid;
            Guid guid1;

            this.CheckModelState();
            IActiveUnitOfWork current = this._unitOfWorkManager.Current;

            current.DisableFilter(new string[] { "MayHaveTenant" });
            long num = Convert.ToInt64(SimpleStringCipher.Decrypt(model.UserId, "gsKnGZ041HLL4IM8"));

            FuelWerx.Authorization.Users.User userByIdAsync = await this._userManager.GetUserByIdAsync(num);

            if (userByIdAsync == null || userByIdAsync.PasswordResetCode.IsNullOrEmpty() || userByIdAsync.PasswordResetCode != model.ResetCode)
            {
                throw new UserFriendlyException(this.L("InvalidPasswordResetCode"), this.L("InvalidPasswordResetCode_Detail"));
            }
            TenantLogosEditDto tenantLogosEditDto = Abp.Threading.AsyncHelper.RunSync <TenantLogosEditDto>(() => this.GetCurrentTenantLogos());
            dynamic            viewBag            = this.ViewBag;

            guid = (tenantLogosEditDto.HeaderImageId.HasValue ? tenantLogosEditDto.HeaderImageId.Value : Guid.Empty);
            viewBag.TenantCompanyHeaderImageId = guid;
            dynamic obj = this.ViewBag;

            guid1 = (tenantLogosEditDto.HeaderMobileImageId.HasValue ? tenantLogosEditDto.HeaderMobileImageId.Value : Guid.Empty);
            obj.TenantCompanyHeaderMobileImageId = guid1;
            return(this.View(model));
        }
Example #2
0
        public PartialViewResult Header()
        {
            long?userId;
            TenantLogosEditDto tenantLogosEditDto = AsyncHelper.RunSync <TenantLogosEditDto>(() => this.GetCurrentTenantLogos());
            long value = (long)0;

            if (base.AbpSession.UserId.HasValue)
            {
                userId = base.AbpSession.UserId;
                value  = userId.Value;
            }
            GetQuickMenuItemsInput getQuickMenuItemsInput = new GetQuickMenuItemsInput()
            {
                OwnerId = new long?(value)
            };
            List <QuickMenuItemListDto> quickMenuItemListDtos = AsyncHelper.RunSync <List <QuickMenuItemListDto> >(() => this._genericAppService.GetQuickMenuItems(getQuickMenuItemsInput));
            HeaderViewModel             headerViewModel       = new HeaderViewModel()
            {
                LoginInformations     = AsyncHelper.RunSync <GetCurrentLoginInformationsOutput>(() => this._sessionAppService.GetCurrentLoginInformations()),
                Languages             = base.LocalizationManager.GetAllLanguages(),
                CurrentLanguage       = base.LocalizationManager.CurrentLanguage,
                IsMultiTenancyEnabled = this._multiTenancyConfig.IsEnabled
            };

            userId = base.AbpSession.ImpersonatorUserId;
            headerViewModel.IsImpersonatedLogin             = userId.HasValue;
            headerViewModel.CurrentTenantHeaderLogoId       = new Guid?((tenantLogosEditDto.HeaderImageId.HasValue ? tenantLogosEditDto.HeaderImageId.Value : Guid.Empty));
            headerViewModel.CurrentTenantHeaderMobileLogoId = new Guid?((tenantLogosEditDto.HeaderMobileImageId.HasValue ? tenantLogosEditDto.HeaderMobileImageId.Value : Guid.Empty));
            headerViewModel.QuickMenuItems = quickMenuItemListDtos;
            return(this.PartialView("_Header", headerViewModel));
        }
Example #3
0
        public ActionResult Login(string userNameOrEmailAddress = "", string returnUrl = "", string successMessage = "")
        {
            Guid guid;
            Guid guid1;

            if (string.IsNullOrWhiteSpace(returnUrl))
            {
                returnUrl = base.Url.Action("Index", "Application");
            }
            ((dynamic)base.ViewBag).ReturnUrl             = returnUrl;
            ((dynamic)base.ViewBag).IsMultiTenancyEnabled = this._multiTenancyConfig.IsEnabled;
            TenantLogosEditDto tenantLogosEditDto = Abp.Threading.AsyncHelper.RunSync <TenantLogosEditDto>(() => this.GetCurrentTenantLogos());
            dynamic            viewBag            = base.ViewBag;

            guid = (tenantLogosEditDto.HeaderImageId.HasValue ? tenantLogosEditDto.HeaderImageId.Value : Guid.Empty);
            viewBag.TenantCompanyHeaderImageId = guid;
            dynamic obj = base.ViewBag;

            guid1 = (tenantLogosEditDto.HeaderMobileImageId.HasValue ? tenantLogosEditDto.HeaderMobileImageId.Value : Guid.Empty);
            obj.TenantCompanyHeaderMobileImageId = guid1;
            return(base.View(new LoginFormViewModel()
            {
                TenancyName = this._tenancyNameFinder.GetCurrentTenancyNameOrNull(),
                IsSelfRegistrationEnabled = this.IsSelfRegistrationEnabled(),
                SuccessMessage = successMessage,
                UserNameOrEmailAddress = userNameOrEmailAddress
            }));
        }
        private async Task <TenantLogosEditDto> GetTenantLogo(int tenantId)
        {
            TenantLogosEditDto tenantLogosEditDto;
            IRepository <TenantLogos, long> repository = this._tenantLogosRepository;
            TenantLogos tenantLogo = await repository.FirstOrDefaultAsync((TenantLogos m) => m.TenantId == tenantId);

            TenantLogos tenantLogo1 = tenantLogo;

            if (tenantLogo1 == null)
            {
                tenantLogosEditDto = new TenantLogosEditDto()
                {
                    TenantId = tenantId
                };
            }
            else
            {
                TenantLogosEditDto tenantLogosEditDto1 = new TenantLogosEditDto()
                {
                    TenantId            = tenantId,
                    HeaderImageId       = tenantLogo1.HeaderImageId,
                    HeaderMobileImageId = tenantLogo1.HeaderMobileImageId,
                    MailImageId         = tenantLogo1.MailImageId,
                    InvoiceImageId      = tenantLogo1.InvoiceImageId
                };
                tenantLogosEditDto = tenantLogosEditDto1;
            }
            return(tenantLogosEditDto);
        }
Example #5
0
        public ActionResult ForgotPassword()
        {
            Guid guid;
            Guid guid1;

            ((dynamic)base.ViewBag).IsMultiTenancyEnabled = this._multiTenancyConfig.IsEnabled;
            ((dynamic)base.ViewBag).TenancyName           = this._tenancyNameFinder.GetCurrentTenancyNameOrNull();
            TenantLogosEditDto tenantLogosEditDto = Abp.Threading.AsyncHelper.RunSync <TenantLogosEditDto>(() => this.GetCurrentTenantLogos());
            dynamic            viewBag            = base.ViewBag;

            guid = (tenantLogosEditDto.HeaderImageId.HasValue ? tenantLogosEditDto.HeaderImageId.Value : Guid.Empty);
            viewBag.TenantCompanyHeaderImageId = guid;
            dynamic obj = base.ViewBag;

            guid1 = (tenantLogosEditDto.HeaderMobileImageId.HasValue ? tenantLogosEditDto.HeaderMobileImageId.Value : Guid.Empty);
            obj.TenantCompanyHeaderMobileImageId = guid1;
            return(base.View());
        }
Example #6
0
        public PartialViewResult Header(string currentPageName = "")
        {
            HeaderViewModel headerViewModel = new HeaderViewModel();

            if (base.AbpSession.UserId.HasValue)
            {
                headerViewModel.LoginInformations = AsyncHelper.RunSync <GetCurrentLoginInformationsOutput>(() => this._sessionAppService.GetCurrentLoginInformations());
            }
            headerViewModel.Languages       = base.LocalizationManager.GetAllLanguages();
            headerViewModel.CurrentLanguage = base.LocalizationManager.CurrentLanguage;
            headerViewModel.Menu            = AsyncHelper.RunSync <UserMenu>(() => this._userNavigationManager.GetMenuAsync("Frontend", base.AbpSession.UserId));
            headerViewModel.CurrentPageName = currentPageName;
            TenantLogosEditDto tenantLogosEditDto = AsyncHelper.RunSync <TenantLogosEditDto>(() => this.GetCurrentTenantLogos());

            headerViewModel.CurrentTenantHeaderLogoId       = tenantLogosEditDto.HeaderImageId;
            headerViewModel.CurrentTenantHeaderMobileLogoId = tenantLogosEditDto.HeaderMobileImageId;
            headerViewModel.IsMultiTenancyEnabled           = this._multiTenancyConfig.IsEnabled;
            return(this.PartialView("~/Views/Layout/_Header.cshtml", headerViewModel));
        }
Example #7
0
        private async Task <TenantLogosEditDto> GetCurrentTenantLogos()
        {
            TenantLogosEditDto tenantLogosEditDto = null;
            bool   flag = false;
            string currentTenancyNameOrNull = this._tenancyNameFinder.GetCurrentTenancyNameOrNull();

            if (currentTenancyNameOrNull == null)
            {
                flag = true;
            }
            else
            {
                Tenant tenant = await this._tenantManager.FindByTenancyNameAsync(currentTenancyNameOrNull);

                TenantLogosEditDto tenantLogos = await this._tenantSettingsAppService.GetTenantLogos(tenant.Id);

                if (tenantLogos == null)
                {
                    flag = true;
                }
                else
                {
                    tenantLogosEditDto = tenantLogos;
                }
            }
            if (flag)
            {
                TenantLogosEditDto tenantLogosEditDto1 = new TenantLogosEditDto()
                {
                    TenantId            = 1,
                    HeaderImageId       = new Guid?(Guid.Empty),
                    HeaderMobileImageId = new Guid?(Guid.Empty),
                    InvoiceImageId      = new Guid?(Guid.Empty),
                    MailImageId         = new Guid?(Guid.Empty)
                };
                tenantLogosEditDto = tenantLogosEditDto1;
            }
            return(tenantLogosEditDto);
        }
Example #8
0
        public ActionResult RegisterView(RegisterViewModel model)
        {
            bool flag;
            Guid guid;
            Guid guid1;

            this.CheckSelfRegistrationIsEnabled();
            ((dynamic)base.ViewBag).IsMultiTenancyEnabled = this._multiTenancyConfig.IsEnabled;
            dynamic viewBag = base.ViewBag;

            flag = (model.IsExternalLogin ? false : this.UseCaptchaOnRegistration());
            viewBag.UseCaptcha = flag;
            TenantLogosEditDto tenantLogosEditDto = Abp.Threading.AsyncHelper.RunSync <TenantLogosEditDto>(() => this.GetCurrentTenantLogos());
            dynamic            obj = base.ViewBag;

            guid = (tenantLogosEditDto.HeaderImageId.HasValue ? tenantLogosEditDto.HeaderImageId.Value : Guid.Empty);
            obj.TenantCompanyHeaderImageId = guid;
            dynamic viewBag1 = base.ViewBag;

            guid1 = (tenantLogosEditDto.HeaderMobileImageId.HasValue ? tenantLogosEditDto.HeaderMobileImageId.Value : Guid.Empty);
            viewBag1.TenantCompanyHeaderMobileImageId = guid1;
            return(base.View("Register", model));
        }
Example #9
0
        public virtual async Task <ActionResult> Register(RegisterViewModel model)
        {
            ActionResult actionResult;

            AbpUserManager <Tenant, Role, FuelWerx.Authorization.Users.User> .AbpLoginResult loginResultAsync;
            Guid guid;
            Guid guid1;
            bool flag;

            AbpUserManager <Tenant, Role, FuelWerx.Authorization.Users.User> .AbpLoginResult abpLoginResult;
            TenantLogosEditDto tenantLogosEditDto = Abp.Threading.AsyncHelper.RunSync <TenantLogosEditDto>(() => this.GetCurrentTenantLogos());
            dynamic            viewBag            = this.ViewBag;

            guid = (tenantLogosEditDto.HeaderImageId.HasValue ? tenantLogosEditDto.HeaderImageId.Value : Guid.Empty);
            viewBag.TenantCompanyHeaderImageId = guid;
            dynamic obj = this.ViewBag;

            guid1 = (tenantLogosEditDto.HeaderMobileImageId.HasValue ? tenantLogosEditDto.HeaderMobileImageId.Value : Guid.Empty);
            obj.TenantCompanyHeaderMobileImageId = guid1;
            try
            {
                this.CheckSelfRegistrationIsEnabled();
                this.CheckModelState();
                if (!model.IsExternalLogin && this.UseCaptchaOnRegistration())
                {
                    RecaptchaVerificationHelper recaptchaVerificationHelper = this.GetRecaptchaVerificationHelper();
                    if (recaptchaVerificationHelper.Response.IsNullOrEmpty())
                    {
                        throw new UserFriendlyException(this.L("CaptchaCanNotBeEmpty"));
                    }
                    if (recaptchaVerificationHelper.VerifyRecaptchaResponse() != RecaptchaVerificationResult.Success)
                    {
                        throw new UserFriendlyException(this.L("IncorrectCaptchaAnswer"));
                    }
                }
                if (!this._multiTenancyConfig.IsEnabled)
                {
                    model.TenancyName = "Default";
                }
                else if (model.TenancyName.IsNullOrEmpty())
                {
                    throw new UserFriendlyException(this.L("TenantNameCanNotBeEmpty"));
                }
                Tenant activeTenantAsync = await this.GetActiveTenantAsync(model.TenancyName);

                bool settingValueForTenantAsync = await SettingManagerExtensions.GetSettingValueForTenantAsync <bool>(this.SettingManager, "App.UserManagement.AllowSelfRegistration", activeTenantAsync.Id);

                if (!settingValueForTenantAsync)
                {
                    throw new UserFriendlyException(this.L("SelfUserRegistrationIsDisabledMessage_Detail"));
                }
                settingValueForTenantAsync = await SettingManagerExtensions.GetSettingValueForTenantAsync <bool>(this.SettingManager, "App.UserManagement.IsNewRegisteredUserActiveByDefault", activeTenantAsync.Id);

                bool flag1 = settingValueForTenantAsync;
                settingValueForTenantAsync = await SettingManagerExtensions.GetSettingValueForTenantAsync <bool>(this.SettingManager, "Abp.Zero.UserManagement.IsEmailConfirmationRequiredForLogin", activeTenantAsync.Id);

                bool flag2 = settingValueForTenantAsync;
                FuelWerx.Authorization.Users.User user = new FuelWerx.Authorization.Users.User()
                {
                    TenantId     = new int?(activeTenantAsync.Id),
                    Name         = model.Name,
                    Surname      = model.Surname,
                    EmailAddress = model.EmailAddress,
                    IsActive     = flag1
                };
                FuelWerx.Authorization.Users.User userName = user;
                ExternalLoginInfo externalLoginInfoAsync   = null;
                if (model.IsExternalLogin)
                {
                    externalLoginInfoAsync = await AuthenticationManagerExtensions.GetExternalLoginInfoAsync(this.AuthenticationManager);

                    if (externalLoginInfoAsync == null)
                    {
                        throw new ApplicationException("Can not external login!");
                    }
                    FuelWerx.Authorization.Users.User user1 = userName;
                    List <UserLogin> userLogins             = new List <UserLogin>();
                    UserLogin        userLogin = new UserLogin()
                    {
                        LoginProvider = externalLoginInfoAsync.Login.LoginProvider,
                        ProviderKey   = externalLoginInfoAsync.Login.ProviderKey
                    };
                    userLogins.Add(userLogin);
                    user1.Logins   = userLogins;
                    model.UserName = model.EmailAddress;
                    model.Password = FuelWerx.Authorization.Users.User.CreateRandomPassword();
                    if (string.Equals(externalLoginInfoAsync.Email, model.EmailAddress, StringComparison.InvariantCultureIgnoreCase))
                    {
                        userName.IsEmailConfirmed = true;
                    }
                }
                else if (model.UserName.IsNullOrEmpty() || model.Password.IsNullOrEmpty())
                {
                    throw new UserFriendlyException(this.L("FormIsNotValidMessage"));
                }
                userName.UserName = model.UserName;
                userName.Password = (new PasswordHasher()).HashPassword(model.Password);
                IActiveUnitOfWork current = this._unitOfWorkManager.Current;
                current.EnableFilter(new string[] { "MayHaveTenant" });
                this._unitOfWorkManager.Current.SetFilterParameter("MayHaveTenant", "tenantId", activeTenantAsync.Id);
                userName.Roles = new List <UserRole>();
                IQueryable <Role> roles     = this._roleManager.Roles;
                List <Role>       listAsync = await(
                    from r in roles
                    where r.IsDefault
                    select r).ToListAsync <Role>();
                foreach (Role role in listAsync)
                {
                    ICollection <UserRole> userRoles = userName.Roles;
                    userRoles.Add(new UserRole()
                    {
                        RoleId = role.Id
                    });
                }
                this.CheckErrors(await this._userManager.CreateAsync(userName));
                await this._unitOfWorkManager.Current.SaveChangesAsync();

                if (!userName.IsEmailConfirmed)
                {
                    userName.SetNewEmailConfirmationCode();
                    await this._userEmailer.SendEmailActivationLinkAsync(userName, null);
                }
                if (userName.IsActive && (userName.IsEmailConfirmed || !flag2))
                {
                    if (externalLoginInfoAsync == null)
                    {
                        loginResultAsync = await this.GetLoginResultAsync(userName.UserName, model.Password, activeTenantAsync.TenancyName);

                        abpLoginResult = loginResultAsync;
                    }
                    else
                    {
                        loginResultAsync = await this._userManager.LoginAsync(externalLoginInfoAsync.Login, activeTenantAsync.TenancyName);

                        abpLoginResult = loginResultAsync;
                    }
                    if (abpLoginResult.Result != AbpLoginResultType.Success)
                    {
                        this.Logger.Warn(string.Concat("New registered user could not be login. This should not be normally. login result: ", abpLoginResult.Result));
                        abpLoginResult = null;
                    }
                    else
                    {
                        await this.SignInAsync(abpLoginResult.User, abpLoginResult.Identity, false);

                        actionResult = this.Redirect(this.Url.Action("Index", "Application"));
                        return(actionResult);
                    }
                }
                AccountController       accountController       = this;
                RegisterResultViewModel registerResultViewModel = new RegisterResultViewModel()
                {
                    TenancyName    = activeTenantAsync.TenancyName,
                    NameAndSurname = string.Concat(userName.Name, " ", userName.Surname),
                    UserName       = userName.UserName,
                    EmailAddress   = userName.EmailAddress,
                    IsActive       = userName.IsActive,
                    IsEmailConfirmationRequired = flag2
                };
                actionResult = accountController.View("RegisterResult", registerResultViewModel);
            }
            catch (UserFriendlyException userFriendlyException1)
            {
                UserFriendlyException userFriendlyException = userFriendlyException1;
                ((dynamic)this.ViewBag).IsMultiTenancyEnabled = this._multiTenancyConfig.IsEnabled;
                dynamic viewBag1 = this.ViewBag;
                flag = (model.IsExternalLogin ? false : this.UseCaptchaOnRegistration());
                viewBag1.UseCaptcha = flag;
                ((dynamic)this.ViewBag).ErrorMessage = userFriendlyException.Message;
                actionResult = this.View("Register", model);
            }
            return(actionResult);
        }
Example #10
0
        public virtual async Task <ActionResult> ExternalLoginCallback(string returnUrl, string tenancyName = "")
        {
            ActionResult      action;
            ActionResult      actionResult;
            Guid              guid;
            Guid              guid1;
            ExternalLoginInfo externalLoginInfoAsync = await AuthenticationManagerExtensions.GetExternalLoginInfoAsync(this.AuthenticationManager);

            if (externalLoginInfoAsync != null)
            {
                if (tenancyName.IsNullOrEmpty())
                {
                    tenancyName = this._tenancyNameFinder.GetCurrentTenancyNameOrNull();
                    if (tenancyName.IsNullOrEmpty())
                    {
                        List <Tenant> tenants = await this.FindPossibleTenantsOfUserAsync(externalLoginInfoAsync.Login);

                        int count = tenants.Count;
                        if (count == 0)
                        {
                            actionResult = await this.RegisterView(externalLoginInfoAsync, null);

                            action = actionResult;
                            return(action);
                        }
                        else if (count == 1)
                        {
                            tenancyName = tenants[0].TenancyName;
                            tenants     = null;
                        }
                        else
                        {
                            TenantLogosEditDto tenantLogosEditDto = Abp.Threading.AsyncHelper.RunSync <TenantLogosEditDto>(() => this.GetCurrentTenantLogos());
                            dynamic            viewBag            = this.ViewBag;
                            guid = (tenantLogosEditDto.HeaderImageId.HasValue ? tenantLogosEditDto.HeaderImageId.Value : Guid.Empty);
                            viewBag.TenantCompanyHeaderImageId = guid;
                            dynamic obj = this.ViewBag;
                            guid1 = (tenantLogosEditDto.HeaderMobileImageId.HasValue ? tenantLogosEditDto.HeaderMobileImageId.Value : Guid.Empty);
                            obj.TenantCompanyHeaderMobileImageId = guid1;
                            AccountController        accountController        = this;
                            TenantSelectionViewModel tenantSelectionViewModel = new TenantSelectionViewModel()
                            {
                                Action  = this.Url.Action("ExternalLoginCallback", "Account", new { returnUrl = returnUrl }),
                                Tenants = tenants.MapTo <List <TenantSelectionViewModel.TenantInfo> >()
                            };
                            action = accountController.View("TenantSelection", tenantSelectionViewModel);
                            return(action);
                        }
                    }
                }
                AbpUserManager <Tenant, Role, FuelWerx.Authorization.Users.User> .AbpLoginResult abpLoginResult = await this._userManager.LoginAsync(externalLoginInfoAsync.Login, tenancyName);

                AbpUserManager <Tenant, Role, FuelWerx.Authorization.Users.User> .AbpLoginResult abpLoginResult1 = abpLoginResult;
                AbpLoginResultType result = abpLoginResult1.Result;
                if (result == AbpLoginResultType.Success)
                {
                    await this.SignInAsync(abpLoginResult1.User, abpLoginResult1.Identity, false);

                    if (string.IsNullOrWhiteSpace(returnUrl))
                    {
                        returnUrl = this.Url.Action("Index", "Application");
                    }
                    action = this.Redirect(returnUrl);
                }
                else
                {
                    if (result != AbpLoginResultType.UnknownExternalLogin)
                    {
                        AccountController  accountController1 = this;
                        AbpLoginResultType abpLoginResultType = abpLoginResult1.Result;
                        string             email = externalLoginInfoAsync.Email;
                        if (email == null)
                        {
                            email = externalLoginInfoAsync.DefaultUserName;
                        }
                        throw accountController1.CreateExceptionForFailedLoginAttempt(abpLoginResultType, email, tenancyName);
                    }
                    actionResult = await this.RegisterView(externalLoginInfoAsync, tenancyName);

                    action = actionResult;
                }
            }
            else
            {
                action = this.RedirectToAction("Login");
            }
            return(action);
        }
        public async Task UpdateTenantLogos(TenantLogosEditDto input)
        {
            Guid?headerImageId;
            IRepository <TenantLogos, long> repository = this._tenantLogosRepository;
            TenantLogos tenantLogo = await repository.FirstOrDefaultAsync((TenantLogos m) => m.TenantId == input.TenantId);

            TenantLogos headerMobileImageId = tenantLogo;

            if (headerMobileImageId == null)
            {
                headerMobileImageId = new TenantLogos()
                {
                    TenantId = input.TenantId
                };
                headerImageId = input.HeaderImageId;
                if (!headerImageId.HasValue)
                {
                    headerImageId = null;
                    headerMobileImageId.HeaderImageId = headerImageId;
                }
                else
                {
                    headerMobileImageId.HeaderImageId = input.HeaderImageId;
                }
                headerImageId = input.HeaderMobileImageId;
                if (!headerImageId.HasValue)
                {
                    headerImageId = null;
                    headerMobileImageId.HeaderMobileImageId = headerImageId;
                }
                else
                {
                    headerMobileImageId.HeaderMobileImageId = input.HeaderMobileImageId;
                }
                headerImageId = input.MailImageId;
                if (!headerImageId.HasValue)
                {
                    headerImageId = null;
                    headerMobileImageId.MailImageId = headerImageId;
                }
                else
                {
                    headerMobileImageId.MailImageId = input.MailImageId;
                }
                headerImageId = input.InvoiceImageId;
                if (!headerImageId.HasValue)
                {
                    headerImageId = null;
                    headerMobileImageId.InvoiceImageId = headerImageId;
                }
                else
                {
                    headerMobileImageId.InvoiceImageId = input.InvoiceImageId;
                }
            }
            else
            {
                headerMobileImageId.TenantId = input.TenantId;
                headerImageId = input.HeaderImageId;
                if (!headerImageId.HasValue)
                {
                    headerImageId = null;
                    headerMobileImageId.HeaderImageId = headerImageId;
                }
                else
                {
                    headerMobileImageId.HeaderImageId = input.HeaderImageId;
                }
                headerImageId = input.HeaderMobileImageId;
                if (!headerImageId.HasValue)
                {
                    headerImageId = null;
                    headerMobileImageId.HeaderMobileImageId = headerImageId;
                }
                else
                {
                    headerMobileImageId.HeaderMobileImageId = input.HeaderMobileImageId;
                }
                headerImageId = input.MailImageId;
                if (!headerImageId.HasValue)
                {
                    headerImageId = null;
                    headerMobileImageId.MailImageId = headerImageId;
                }
                else
                {
                    headerMobileImageId.MailImageId = input.MailImageId;
                }
                headerImageId = input.InvoiceImageId;
                if (!headerImageId.HasValue)
                {
                    headerImageId = null;
                    headerMobileImageId.InvoiceImageId = headerImageId;
                }
                else
                {
                    headerMobileImageId.InvoiceImageId = input.InvoiceImageId;
                }
            }
            await this._tenantLogosRepository.InsertOrUpdateAndGetIdAsync(headerMobileImageId);
        }
Example #12
0
        public virtual async Task <JsonResult> UpdateTenantLogos(TenantLogosUploadModel model)
        {
            JsonResult   jsonResult;
            Guid?        headerImageId;
            BinaryObject binaryObject;
            BinaryObject binaryObject1;
            BinaryObject binaryObject2;
            BinaryObject binaryObject3;

            try
            {
                bool flag = false;
                ITenantSettingsAppService tenantSettingsAppService = this._tenantSettingsAppService;
                int?tenantId = this.AbpSession.TenantId;
                TenantLogosEditDto tenantLogos = await tenantSettingsAppService.GetTenantLogos(tenantId.Value);

                if (this.Request.Files.Count > 0)
                {
                    foreach (object key in this.Request.Files.Keys)
                    {
                        HttpPostedFileBase item = this.Request.Files[key.ToString()];
                        if (item.ContentLength > 512000)
                        {
                            throw new UserFriendlyException(this.L("TenantCompanyLogo_Warn_SizeLimit"));
                        }
                        string str = key.ToString();
                        if (str == "HeaderImage")
                        {
                            headerImageId = tenantLogos.HeaderImageId;
                            if (headerImageId.HasValue)
                            {
                                headerImageId = tenantLogos.HeaderImageId;
                                if (headerImageId.Value != Guid.Empty)
                                {
                                    IBinaryObjectManager binaryObjectManager = this._binaryObjectManager;
                                    headerImageId = tenantLogos.HeaderImageId;
                                    await binaryObjectManager.DeleteAsync(headerImageId.Value);
                                }
                            }
                            binaryObject = new BinaryObject(item.InputStream.GetAllBytes());
                            await this._binaryObjectManager.SaveAsync(binaryObject);

                            tenantLogos.HeaderImageId = new Guid?(binaryObject.Id);
                            flag = true;
                        }
                        else if (str == "HeaderMobileImage")
                        {
                            headerImageId = tenantLogos.HeaderMobileImageId;
                            if (headerImageId.HasValue)
                            {
                                headerImageId = tenantLogos.HeaderMobileImageId;
                                if (headerImageId.Value != Guid.Empty)
                                {
                                    IBinaryObjectManager binaryObjectManager1 = this._binaryObjectManager;
                                    headerImageId = tenantLogos.HeaderMobileImageId;
                                    await binaryObjectManager1.DeleteAsync(headerImageId.Value);
                                }
                            }
                            binaryObject1 = new BinaryObject(item.InputStream.GetAllBytes());
                            await this._binaryObjectManager.SaveAsync(binaryObject1);

                            tenantLogos.HeaderMobileImageId = new Guid?(binaryObject1.Id);
                            flag = true;
                        }
                        else if (str == "MailImage")
                        {
                            headerImageId = tenantLogos.MailImageId;
                            if (headerImageId.HasValue)
                            {
                                headerImageId = tenantLogos.MailImageId;
                                if (headerImageId.Value != Guid.Empty)
                                {
                                    IBinaryObjectManager binaryObjectManager2 = this._binaryObjectManager;
                                    headerImageId = tenantLogos.MailImageId;
                                    await binaryObjectManager2.DeleteAsync(headerImageId.Value);
                                }
                            }
                            binaryObject2 = new BinaryObject(item.InputStream.GetAllBytes());
                            await this._binaryObjectManager.SaveAsync(binaryObject2);

                            tenantLogos.MailImageId = new Guid?(binaryObject2.Id);
                            flag = true;
                        }
                        else if (str == "InvoiceImage")
                        {
                            headerImageId = tenantLogos.InvoiceImageId;
                            if (headerImageId.HasValue)
                            {
                                headerImageId = tenantLogos.InvoiceImageId;
                                if (headerImageId.Value != Guid.Empty)
                                {
                                    IBinaryObjectManager binaryObjectManager3 = this._binaryObjectManager;
                                    headerImageId = tenantLogos.InvoiceImageId;
                                    await binaryObjectManager3.DeleteAsync(headerImageId.Value);
                                }
                            }
                            binaryObject3 = new BinaryObject(item.InputStream.GetAllBytes());
                            await this._binaryObjectManager.SaveAsync(binaryObject3);

                            tenantLogos.InvoiceImageId = new Guid?(binaryObject3.Id);
                            flag = true;
                        }
                        binaryObject  = null;
                        binaryObject1 = null;
                        binaryObject2 = null;
                        binaryObject3 = null;
                        item          = null;
                    }
                }
                if (model.ClearHeaderImageId.HasValue && model.ClearHeaderImageId.Value)
                {
                    headerImageId = model.HeaderImageId;
                    if (headerImageId.HasValue)
                    {
                        IBinaryObjectManager binaryObjectManager4 = this._binaryObjectManager;
                        headerImageId = tenantLogos.HeaderImageId;
                        await binaryObjectManager4.DeleteAsync(headerImageId.Value);

                        headerImageId             = null;
                        tenantLogos.HeaderImageId = headerImageId;
                        flag = true;
                    }
                }
                if (model.ClearHeaderMobileImageId.HasValue && model.ClearHeaderMobileImageId.Value)
                {
                    headerImageId = model.HeaderMobileImageId;
                    if (headerImageId.HasValue)
                    {
                        IBinaryObjectManager binaryObjectManager5 = this._binaryObjectManager;
                        headerImageId = tenantLogos.HeaderMobileImageId;
                        await binaryObjectManager5.DeleteAsync(headerImageId.Value);

                        headerImageId = null;
                        tenantLogos.HeaderMobileImageId = headerImageId;
                        flag = true;
                    }
                }
                if (model.ClearMailImageId.HasValue && model.ClearMailImageId.Value)
                {
                    headerImageId = model.MailImageId;
                    if (headerImageId.HasValue)
                    {
                        IBinaryObjectManager binaryObjectManager6 = this._binaryObjectManager;
                        headerImageId = tenantLogos.MailImageId;
                        await binaryObjectManager6.DeleteAsync(headerImageId.Value);

                        headerImageId           = null;
                        tenantLogos.MailImageId = headerImageId;
                        flag = true;
                    }
                }
                if (model.ClearInvoiceImageId.HasValue && model.ClearInvoiceImageId.Value)
                {
                    headerImageId = model.InvoiceImageId;
                    if (headerImageId.HasValue)
                    {
                        IBinaryObjectManager binaryObjectManager7 = this._binaryObjectManager;
                        headerImageId = tenantLogos.InvoiceImageId;
                        await binaryObjectManager7.DeleteAsync(headerImageId.Value);

                        headerImageId = null;
                        tenantLogos.InvoiceImageId = headerImageId;
                        flag = true;
                    }
                }
                if (flag)
                {
                    await this._tenantSettingsAppService.UpdateTenantLogos(tenantLogos);
                }
                jsonResult = this.Json(new MvcAjaxResponse());
            }
            catch (UserFriendlyException userFriendlyException1)
            {
                UserFriendlyException userFriendlyException = userFriendlyException1;
                jsonResult = this.Json(new MvcAjaxResponse(new ErrorInfo(userFriendlyException.Message), false));
            }
            return(jsonResult);
        }