public virtual ResponseAuth Authenticate(int client_id, string username, string password) { //validate if data is passed with all 3 parameters. ResponseAuth resp = new ResponseAuth(); if (client_id < 1) { resp.message = "Please select a Client."; return(resp); } if (username.Trim().Length == 0) { resp.message = "Please enter a Username."; return(resp); } if (password.Trim().Length == 0) { resp.message = "Please enter a Password."; return(resp); } //var usermodel = Bango.Container.GetInstance<IUserModel>(); //UserService<UserModel, int?> userSrvc = (UserService<UserModel, int?>)Bango.Container.GetInstance(typeof(IUserService<UserModel, int?>)); var userSrvc = GetUserServiceInstance(); using (DbConnect con = new DbConnect()) { resp = userSrvc.AuthenticateUserNamePasword(con, client_id, username, password); //generate token string token = string.Empty; if (resp.success) { token = GenerateToken(); } resp.token = token; //save data in session & generate SessionLogService sessionSrvc = new SessionLogService(); DynamicDictionary data_param = new DynamicDictionary(); data_param.Add("client_id", client_id); data_param.Add("user_id", resp.user_id); DateTime login_datetime = DateTime.Now; data_param.Add("login_datetime", login_datetime); data_param.Add("expire_datetime", GetExpirtyDateTime(login_datetime)); data_param.Add("token", token); sessionSrvc.Insert(con, data_param); //SessionLogModel } return(resp); }
public ResponseAuth AuthenticateUserNamePasword(DbConnect con, int client_id, string username, string password) { ResponseAuth resp = new ResponseAuth(); string template = @" SELECT id, client_id, username, password, name_en, name_np,email, status FROM rbac_user u /**where**/ AND u.status=true AND u.is_deleted=false"; //creating command & preparing command string alias = DbServiceUtility.GetTableAliasForTable("u"); BangoCommand cmd = new BangoCommand(MyroCommandTypes.SqlBuilder); cmd.Template = cmd.SqlBuilder.AddTemplate(template); UserModel mdl = new UserModel(); DbServiceUtility.BindDeleteParameter(cmd, mdl, alias); DynamicDictionary data_param = new DynamicDictionary(); data_param.Add("client_id", client_id); data_param.Add("username", username); DbServiceUtility.BindParameters(cmd, mdl, data_param, alias, SearchTypes.Equal); //executing the command string finalSql = cmd.FinalSql; if (finalSql.Length > 0) { IEnumerable <SqlMapper.DapperRow> items = null; try { items = con.DB.Query <SqlMapper.DapperRow>(finalSql, cmd.FinalParameters, true); } catch (Npgsql.NpgsqlException ex) { LogTrace.WriteErrorLog(ex.ToString()); LogTrace.WriteDebugLog(string.Format("Select SQL which gave exception:\r{0}", ex.Routine)); } Errors = con.DB.GetErros(); if (items != null && items.Count() > 0) { DynamicDictionary data = Conversion.ToDynamicDictionary(items.FirstOrDefault()); if (data.GetValueAsString("password") == EncryptPassword(password)) { resp.success = true; resp.user_id = data.GetValueAsInt("id"); resp.email = data.GetValueAsString("email"); resp.message = "Login successfull"; } else { resp.message = "Username and/or Password is invalid."; } } else { if (Errors.Count > 0) { resp.message = "Technical Problem occurred."; } else { resp.message = "Please provide a valid Username."; } } } return(resp); }