Exemplo n.º 1
0
        public CallContext MergeSettings(CallContext inputContext)
        {
            CallContext outputContext = new CallContext();

            outputContext.ResultCode = ETEMEnums.ResultEnum.Success;

            if (!HasUserActionPermission(null, outputContext, inputContext))
            {
                return(outputContext);
            }

            LoadAppSetting();

            List <Setting> listActionDB = this.dbContext.Settings.ToList();

            List <Setting> listSettingToBeSave = new List <Setting>();

            foreach (Setting apToBeSave in this.ListAppSetting)
            {
                if (listActionDB.Where(
                        apDB => apDB.SettingIntCode == apToBeSave.SettingIntCode.ToString()).Count() == 0)
                {
                    listSettingToBeSave.Add(new Setting()
                    {
                        SettingName         = apToBeSave.SettingName,
                        SettingDescription  = apToBeSave.SettingDescription,
                        SettingIntCode      = apToBeSave.SettingIntCode,
                        SettingValue        = apToBeSave.SettingValue,
                        SettingDefaultValue = apToBeSave.SettingDefaultValue,
                        SettingClass        = apToBeSave.SettingClass
                    }
                                            );
                }
            }

            CallContext resultContext = new CallContext();

            resultContext.securitySettings  = ETEMEnums.SecuritySettings.SettingSave;
            resultContext.CurrentConsumerID = new SettingBL().GetSettingByCode(ETEMEnums.AppSettings.UserIDBindWithSystem.ToString()).SettingValue;

            foreach (Setting entity in listSettingToBeSave)
            {
                resultContext = new SettingBL().EntitySave <Setting>(entity, resultContext);
            }

            return(outputContext);
        }
Exemplo n.º 2
0
        public CallContext Login(string userName, string Password, CallContext inputContext)
        {
            this.RequestMeasure.PageName = "Login";

            CallContext outputContext = new CallContext();

            User user = dbContext.Users.Where(u => u.UserName == userName).FirstOrDefault();

            if (user != null)
            {
                KeyValue status = dbContext.KeyValues.Where(k => k.idKeyValue == user.idStatus).FirstOrDefault();

                if (status == null)
                {
                    outputContext.EntityID   = Constants.INVALID_ID_STRING;
                    outputContext.ResultCode = ETEMEnums.ResultEnum.Error;
                    outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Unsuccessful");
                }
                else
                {
                    if (status.KeyValueIntCode == "Active")
                    {
                        KeyValue kvCheckDomainYes = new KeyValueBL().GetKeyValueByIntCode("YES_NO", "Yes");

                        if (kvCheckDomainYes.idKeyValue == user.idCheckDomain)
                        {
                            string domainPart = new SettingBL().GetSettingByCode(ETEMEnums.AppSettings.DomainName.ToString()).SettingValue;

                            string         qualifiedUserName = domainPart + "\\" + userName;
                            string         serverName        = domainPart;
                            DirectoryEntry entry             = new DirectoryEntry("LDAP://" + serverName,
                                                                                  qualifiedUserName, Password);

                            try
                            {
                                DirectorySearcher searcher = new DirectorySearcher(entry);

                                string       qryFilterFormat = String.Format("(&(objectClass=user)(objectCategory=person)(sAMAccountName={0}))", userName);
                                SearchResult result          = null;

                                List <DomainUserInfo> userInfo = new List <DomainUserInfo>();
                                DomainUserInfo        objuser  = new DomainUserInfo();


                                searcher.Filter = qryFilterFormat;
                                SearchResultCollection results = searcher.FindAll();
                                result = (results.Count != 0) ? results[0] : null;

                                if (result != null)
                                {
                                    objuser.ShortName   = (string)result.Properties["sAMAccountName"][0];
                                    objuser.DisplayName = (string)result.Properties["displayname"][0];

                                    outputContext.EntityID   = user.idUser.ToString();
                                    outputContext.ResultCode = ETEMEnums.ResultEnum.Success;
                                    outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Successful");
                                }
                            }
                            catch (Exception ex)
                            {
                                outputContext.EntityID   = Constants.INVALID_ID_STRING;
                                outputContext.ResultCode = ETEMEnums.ResultEnum.Warning;
                                outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Unsuccessful");

                                BaseHelper.Log(ex.Message);
                            }
                        }
                        else
                        {
                            string tmpPassword = ETEMModel.Helpers.BaseHelper.Encrypt(Password);

                            if (user.Password == tmpPassword)
                            {
                                outputContext.EntityID   = user.idUser.ToString();
                                outputContext.ResultCode = ETEMEnums.ResultEnum.Success;
                                outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Successful");
                            }
                            else
                            {
                                outputContext.EntityID   = Constants.INVALID_ID_STRING;
                                outputContext.ResultCode = ETEMEnums.ResultEnum.Warning;
                                outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Unsuccessful");
                            }
                        }
                    }
                    else if (status.KeyValueIntCode == "TemporarilyInactive")
                    {
                        string tmpPassword = ETEMModel.Helpers.BaseHelper.Encrypt(Password);


                        if (user.AltPassword == tmpPassword)
                        {
                            outputContext.EntityID   = user.idUser.ToString();
                            outputContext.ResultCode = ETEMEnums.ResultEnum.Success;
                            outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Successful");
                        }
                        else
                        {
                            outputContext.EntityID   = Constants.INVALID_ID_STRING;
                            outputContext.ResultCode = ETEMEnums.ResultEnum.Warning;
                            outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Unsuccessful");
                        }
                    }
                    else
                    {
                        outputContext.EntityID   = Constants.INVALID_ID_STRING;
                        outputContext.ResultCode = ETEMEnums.ResultEnum.Warning;
                        outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Unsuccessful");
                    }
                }
            }
            else
            {
                user                     = new User();
                user.UserName            = userName;
                user.idUser              = Constants.INVALID_ID;
                outputContext.EntityID   = Constants.INVALID_ID_STRING;
                outputContext.ResultCode = ETEMEnums.ResultEnum.Warning;
                outputContext.Message    = BaseHelper.GetCaptionString("UI_Login_Unsuccessful");
            }

            MakeEventLog(outputContext, user);

            BaseHelper.Log(this.RequestMeasure.ToString());

            return(outputContext);
        }