Пример #1
0
        public ActionResult ChangePassword()
        {
            if (!string.IsNullOrEmpty(ConvertTo.String(ProjectSession.UserId)))
            {
                int userId = ProjectSession.UserId.ToInteger();
                using (Services.ServiceContext changePasswordService = new Services.ServiceContext(true))
                {
                    var userModel = changePasswordService.Search(new SmartLibrary.Models.User()
                    {
                        Id = userId
                    }).FirstOrDefault();

                    if (userModel != null && userModel.Id > 0)
                    {
                        SmartLibrary.Models.ChangePassword changePassword = new SmartLibrary.Models.ChangePassword();
                        changePassword.Id = userModel.Id;
                        return(this.View(Views.ChangePassword, changePassword));
                    }
                }
            }

            return(this.View(Views.ChangePassword));
        }
Пример #2
0
        public ActionResult ChangePassword(SmartLibrary.Models.ChangePassword changePassword)
        {
            using (Services.ServiceContext changePasswordService = new Services.ServiceContext(true))
            {
                if (changePassword == null || ConvertTo.ToInteger(changePassword.Id) <= 0)
                {
                    this.ViewBag.ChangePasswordMessage = SmartLibrary.Resources.Account.UserNotExist;
                    return(this.View(Views.ChangePassword, changePassword));
                }

                var userModel = changePasswordService.Search(new SmartLibrary.Models.User()
                {
                    Id = changePassword.Id,
                }).FirstOrDefault();

                if (userModel != null && userModel.Id > 0)
                {
                    ////if (ProjectConfiguration.IsActiveDirectory)
                    ////{
                    ////    ActiveDirectoryRegister activeDirectoryChangePassword = new ActiveDirectoryRegister()
                    ////    {
                    ////        Email = userModel.Email,
                    ////        Password = changePassword.CurrentPassword,
                    ////        NewPassword = changePassword.NewPassword,
                    ////        ConfirmPassword = changePassword.ConfirmPassword
                    ////    };

                    ////    var changePasswordResponse = this.commonBL.ActiveDirectoryChangePasswordResponse(activeDirectoryChangePassword);

                    ////    if (changePasswordResponse == null || changePasswordResponse.Status != SystemEnumList.ApiStatus.Success.GetDescription())
                    ////    {
                    ////        this.AddToastMessage(Resources.General.Error, changePasswordResponse?.Message ?? Messages.ErrorMessage.SetArguments(General.Member), Infrastructure.SystemEnumList.MessageBoxType.Error);
                    ////        return this.View(Views.ChangePassword, changePassword);
                    ////    }
                    ////}

                    if (userModel.Password == Infrastructure.EncryptionDecryption.EncryptByTripleDES(changePassword.CurrentPassword))
                    {
                        if (changePassword.NewPassword == changePassword.ConfirmPassword)
                        {
                            userModel.Password = Infrastructure.EncryptionDecryption.EncryptByTripleDES(changePassword.NewPassword);
                            bool response = this.commonBL.ChangePassword(userModel.Id, userModel.Password, Infrastructure.SystemEnumList.ChangePasswordFor.User.GetDescription());
                            if (response)
                            {
                                this.AddToastMessage(Resources.General.Success, Account.PasswordChangedSuccessfully, Infrastructure.SystemEnumList.MessageBoxType.Success);
                                return(new RedirectResult(this.Url.Action(Views.BookGrid, Controllers.Book)));
                            }
                            else
                            {
                                this.AddToastMessage(Resources.General.Error, Messages.ChangePasswordError, Infrastructure.SystemEnumList.MessageBoxType.Error);
                                return(this.View(Views.ChangePassword, changePassword));
                            }
                        }
                        else
                        {
                            this.AddToastMessage(Resources.General.Error, Account.NewPasswordAndConfirmPasswordNotMatch, SystemEnumList.MessageBoxType.Error);
                            return(this.View(Views.ChangePassword, changePassword));
                        }
                    }
                    else
                    {
                        this.AddToastMessage(Resources.General.Error, Account.CurrentPasswordNotMatch, Infrastructure.SystemEnumList.MessageBoxType.Error);
                        return(this.View(Views.ChangePassword, changePassword));
                    }
                }
                else
                {
                    this.AddToastMessage(Resources.General.Error, Account.UserNotExist, Infrastructure.SystemEnumList.MessageBoxType.Error);
                    return(this.View(Views.ChangePassword, changePassword));
                }
            }
        }
Пример #3
0
        public async Task RunBehaviorLogicAsync(string connectionId, string username, string payload, Services.ServiceContext context)
        {
            var behaviorContext = await CreateBehaviorContextAsync(connectionId, username, payload, context);

            var          availableSteps = behaviorContext.Iterator.Current();
            BehaviorStep currentStep    = null;

            foreach (var step in availableSteps)
            {
                if (await CheckStepCondition(behaviorContext, step))
                {
                    currentStep = step;
                    break;
                }
            }

            if (currentStep != null)
            {
                behaviorContext.Iterator.Next(currentStep?.Id);
                await RunStepAsync(behaviorContext, _outgoingServicePool.Resolve(context.TransportName), currentStep);
            }

            if (!behaviorContext.Iterator.Current().Any())
            {
                behaviorContext.Iterator.Reset();
            }
        }
Пример #4
0
        private async Task <User> FindOrCreateUserAsync(string connectionId, string username, IPlatformDatabase database, Services.ServiceContext serviceContext)
        {
            var client =
                (await database.UserTransports
                 .Include(x => x.User)
                 .FirstOrDefaultAsync(x => x.Id == serviceContext.TransportId && x.TransportUserId.Equals(connectionId)))?.User;

            if (client is null)
            {
                client = new User
                {
                    Username = username
                };

                database.UserTransports.Add(
                    new UserTransport
                {
                    Transport       = await database.Transports.FirstAsync(x => x.Id == serviceContext.TransportId),
                    User            = client,
                    TransportUserId = connectionId
                });

                _logger.LogInformation($"New user just created. Username: {username}. Transport: {serviceContext.TransportName}. BotId: {serviceContext.BotId}.");
            }

            client.LastActivity = DateTime.Now;
            await database.SaveChangesAsync();

            _connectionsRepository.AddConnection(client.Id, serviceContext.TransportName, connectionId);

            return(client);
        }
Пример #5
0
        private async Task <BehaviorContext> CreateBehaviorContextAsync(string connectionId, string username, string payload, Services.ServiceContext serviceContext)
        {
            try
            {
                await _executorSemaphore.WaitAsync();

                if (!_runningDialogs.TryGetValue(connectionId, out var context))
                {
                    _logger.LogTrace($"Behavior context was created for dialog. BotId: {serviceContext.BotId}. ConnectionId: {connectionId}.");

                    var database = _serviceProvider.GetRequiredService <IPlatformDatabase>();
                    var client   = await FindOrCreateUserAsync(connectionId, username, database, serviceContext);

                    context = new BehaviorContext
                    {
                        ConnectionId   = connectionId,
                        Iterator       = _behavior.Iterator,
                        ServiceContext = serviceContext,
                        Database       = database,
                        Client         = client
                    };

                    _runningDialogs.Add(connectionId, context);
                }

                context.Dialog = await _dialogsRepository.CreateOrUpdateDialogAsync(context.Database, context.Client, payload, MessageDirection.In, serviceContext.BotId);

                context.LastUsedOn = DateTime.Now;

                return(context);
            }
            finally
            {
                _executorSemaphore.Release();
            }
        }
Пример #6
0
        /// <summary>
        /// GetListForDropdown
        /// </summary>
        /// <typeparam name="T">T</typeparam>
        /// <param name="pleaseSelectText">pleaseSelectText</param>
        /// <param name="selectedValue">selectedValue</param>
        /// <param name="selectedText">selectedText</param>
        /// <param name="textField">textField</param>
        /// <param name="valueField">valueField</param>
        /// <param name="searchCriteria">searchCriteria</param>
        /// <returns>List</returns>
        public static List <SelectListItem> GetListForDropdown <T>(string pleaseSelectText = "", string selectedValue = "", string selectedText = "", string textField = "Name", string valueField = "ID", T searchCriteria = default(T))
        {
            List <SelectListItem> retList = new List <SelectListItem>();

            if (searchCriteria == null)
            {
                searchCriteria = Activator.CreateInstance <T>();
            }

            if (searchCriteria.GetType().GetProperty("Active") != null && searchCriteria.GetType().GetProperty("Active").GetValue(searchCriteria) == null)
            {
                searchCriteria.GetType().InvokeMember("Active", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty, Type.DefaultBinder, searchCriteria, new object[] { true });
            }

            List <T> listT;

            using (Services.ServiceContext service = new Services.ServiceContext())
            {
                listT = service.Search <T>((T)searchCriteria).ToList();
            }

            SelectListItem selectListItem;

            if (!string.IsNullOrEmpty(pleaseSelectText))
            {
                selectListItem       = new SelectListItem();
                selectListItem.Text  = pleaseSelectText;
                selectListItem.Value = string.Empty;
                retList.Add(selectListItem);
            }

            foreach (var item in listT)
            {
                selectListItem          = new SelectListItem();
                selectListItem.Text     = item.GetType().GetProperty(textField).GetValue(item).String();
                selectListItem.Value    = item.GetType().GetProperty(valueField).GetValue(item).String();
                selectListItem.Selected = !string.IsNullOrEmpty(selectedValue) && selectedValue == selectListItem.Value.String();
                retList.Add(selectListItem);
            }

            if (!string.IsNullOrEmpty(selectedValue) && !retList.Any(i => i.Value == selectedValue))
            {
                string inActiveText = string.Empty;
                if (string.IsNullOrEmpty(selectedText))
                {
                    if (searchCriteria.GetType().GetProperty("Active") != null)
                    {
                        searchCriteria.GetType().InvokeMember("Active", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty, Type.DefaultBinder, searchCriteria, new object[] { false });
                    }

                    if (searchCriteria.GetType().GetProperty("ID") != null)
                    {
                        searchCriteria.GetType().InvokeMember("ID", BindingFlags.Instance | BindingFlags.Public | BindingFlags.SetProperty, Type.DefaultBinder, searchCriteria, new object[] { selectedValue.ToInteger() });
                    }

                    using (Services.ServiceContext service = new Services.ServiceContext())
                    {
                        listT = service.Search <T>((T)searchCriteria).ToList();
                    }

                    if (listT?.Count == 1)
                    {
                        var text = listT[0].GetType().InvokeMember(textField, BindingFlags.Instance | BindingFlags.Public | BindingFlags.GetProperty, Type.DefaultBinder, listT[0], new object[] { });
                        if (!string.IsNullOrEmpty(text.String()))
                        {
                            inActiveText = text.String() + " (In-Active)";
                        }
                    }
                }
                else
                {
                    inActiveText = selectedText + " (In-Active)";
                }

                selectListItem       = new SelectListItem();
                selectListItem.Text  = inActiveText;
                selectListItem.Value = selectedValue;
                retList.Add(selectListItem);
            }

            return(retList);
        }