public async Task <Result <bool> > ApplyToAd(string userId, string adId) { var user = await _userManager.FindByIdAsync(userId); if (user == null) { return(Result <bool> .CreateFailed( HttpStatusCode.NotFound, "User not found")); } var ad = await _context.Ads .Where(x => x.Id == Guid.Parse(adId)) .Include(x => x.UserAds) .Include("UserAds.User") .Include(x => x.Owner) .FirstOrDefaultAsync(); var applicant = new UserAd(); applicant.User = user; applicant.Ad = ad; ad.UserAds.Add(applicant); try { await _context.SaveChangesAsync(); } catch (Exception) { return(Result <bool> .CreateFailed( HttpStatusCode.InternalServerError, "Cound't add ad")); } return(Result <bool> .CreateSuccessful(true)); }
//public UserAd GetUser(string userName, string password) //{ // try // { // var userPrincipalName = $"{userName}@londonsumatra.com"; // using (var context = new PrincipalContext(ContextType.Domain, this._domainName, this._containersUsers, // this._userName, this._password)) // { // if (context.ValidateCredentials(userPrincipalName, password)) // { // var result = FindUser(context, userPrincipalName); // return result; // } // } // } // catch (Exception) // { // return null; // } // return null; //} private UserAd FindUser(PrincipalContext principalContext, string upn) { //if (upn.ToLower().Contains("guest")) //testforguestmii //{ // return new UserAd // { // Username = "******", // DisplayName = "Guest.MII", // FirstName = "Guest", // LastName = "MII", // Mail = "*****@*****.**" // }; //} //TODO : uncomment di lonsum //return result; List <string> namagrup = new List <string>(); var userContext = new UserPrincipalExtended(principalContext) { UserPrincipalName = upn }; using (var user = UserPrincipal.FindByIdentity(principalContext, upn)) { var usergrup = user.GetGroups(); using (usergrup) { foreach (Principal group in usergrup) // cycle through all the groups for this user { namagrup.Add(group.Name); } } } using (var search = new PrincipalSearcher(userContext)) { if (search.FindOne() is UserPrincipalExtended result) { UserAd userModel = new UserAd(); userModel.Username = result.UserPrincipalName; userModel.JobTitle = result.Title; userModel.DisplayName = result.DisplayName; userModel.FirstName = result.GivenName; userModel.LastName = result.Surname; userModel.Mail = result.EmailAddress; bool a = namagrup.Contains("SG LSI ICT Administration & QA"); if (result.Title == "DMS3 Engineer") { userModel.Role = "Engineer"; } else if (result.Title == "DMS3 Leader" || result.Title == "DMS3 Project Manager") { userModel.Role = "Leader"; } //TODO : check grup SGLSIICTQA else if (namagrup.Contains("SG LSI ICT Administration & QA")) { userModel.Role = "IT"; } else if (result.EmailAddress.Contains("SGLSIICTQA")) { userModel.Role = "User"; } else { userModel.Role = ""; } return(userModel); } } return(null); }
public HttpResponseMessage Get([FromBody] LoginRequest request) { var response = new SingleResponse <UserAd>(); try { UserIdentity result = null; UserAd userPost = new UserAd(); var identity = (ClaimsIdentity)User.Identity; var claims = identity.Claims.ToList(); if (claims.Any()) { result = new UserIdentity { LoginId = identity?.Name }; userPost.Username = identity?.Name; userPost.Mail = claims.Where(d => d.Type.Equals(ClaimTypes.Email, StringComparison.OrdinalIgnoreCase)).Select(x => x.Value).FirstOrDefault(); userPost.JobTitle = claims.Where(d => d.Type.Equals("jobdescription", StringComparison.OrdinalIgnoreCase)).Select(x => x.Value).FirstOrDefault(); userPost.DisplayName = claims.Where(d => d.Type.Equals(ClaimTypes.GivenName, StringComparison.OrdinalIgnoreCase)).Select(x => x.Value).FirstOrDefault(); if (userPost.JobTitle == ConfigurationManager.AppSettings["RoleEngineer"]) { userPost.Role = "Engineer"; } else if (userPost.JobTitle.ToLower() == ConfigurationManager.AppSettings["RoleEngineerLeader"] || userPost.JobTitle.ToLower() == ConfigurationManager.AppSettings["RoleEngineerLeader2"]) { userPost.Role = "Leader"; } //TODO : check grup SGLSIICTQA else if (claims.Where(d => d.Type.Equals("memberofgroup", StringComparison.OrdinalIgnoreCase)).Any(x => x.Value.Contains(ConfigurationManager.AppSettings["RoleIT"]))) { userPost.Role = "IT"; } //TODO : rubah menjadi tidak memiliki contain DMS3 else if (!userPost.Mail.Contains("DMS3")) { userPost.Role = "User"; } else { userPost.Role = ""; } // //var userid = claims.Where(d => d.Type.Equals("employeeid", // // StringComparison.OrdinalIgnoreCase)).Select(x => x.Value).FirstOrDefault(); // //foreach (var item in claims) // //{ // // if (item.Type.Equals("department", StringComparison.OrdinalIgnoreCase)) // // result.Department = item.Value; // // if (item.Type.Equals("employeeid", StringComparison.OrdinalIgnoreCase)) // // result.EmployeeId = item.Value; // // if (item.Type.Equals("jobdescription", StringComparison.OrdinalIgnoreCase)) // // result.JobDescription = item.Value; // // if (item.Type.Equals("company", StringComparison.OrdinalIgnoreCase)) // // result.Company = item.Value; // // if (item.Type.Equals("office", StringComparison.OrdinalIgnoreCase)) // // result.Office = item.Value; // // if (item.Type.Equals(ClaimTypes.Email, StringComparison.OrdinalIgnoreCase)) // // result.EmailAddress = item.Value; // // if (item.Type.Equals(ClaimTypes.HomePhone, StringComparison.OrdinalIgnoreCase)) // // result.TelpNo = item.Value; // // if (item.Type.Equals(ClaimTypes.DateOfBirth, StringComparison.OrdinalIgnoreCase)) // // result.DoB = Convert.ToDateTime(item.Value); // // if (item.Type.Equals("memberofgroup", StringComparison.OrdinalIgnoreCase)) // // result.MemberOfGroup = item.Value.Split(',').ToList(); // //} } ////TODO: user dev FWH // if (request.Username.ToLower() == "*****@*****.**") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Guest MII"; // userPost.Role = "User"; //} //else if (request.Username.ToLower() == "*****@*****.**") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Guest MII 2"; // userPost.Role = "IT"; //} //else if (request.Username.ToLower() == "*****@*****.**") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Andreas Bayyina"; // userPost.Role = "Engineer"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "alexp") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Alex Binsar Panjaitan"; // userPost.Role = "IT"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "ardiansyahl") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "User 1"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "agni.bhargo") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "User 2"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "pungky") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "User 3"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "robbania") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "User 4"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "doni.hidayat") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "User 5"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "rajohan") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "User 6"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "ujang") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "User 7"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "widyap") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "User 8"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "icha") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "User 9"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "ukur") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "User 10"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "bahrum") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Bahrum bukan teroris"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "afrianto") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Afrianto disebut jg afro"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "tjukhasto") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Tjukhasto Maro Chan"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "pramujo") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Pramujo Pramuka"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "heruh") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Heru Hashirama"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "andrians") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Andrian Senju"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "kusuma") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Kusumahhh"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "akbar") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "akbar tanjung"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "ortega") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Ariel Ortega"; // userPost.Role = "User"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "dms3.hendri") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "hendri disebut jg Hendro"; // userPost.Role = "Engineer"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "dms3.fahmi") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Fahmi DMS3"; // userPost.Role = "Engineer"; //} //else if (request.Username.ToLower().Replace("@londonsumatra.com", "") == "hengky.sebastianus") //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Hengky Sebastianus"; // userPost.Role = "User"; //} //else //{ // userPost.Username = "******"; // userPost.Mail = "*****@*****.**"; // userPost.DisplayName = "Indah Naibaho"; // userPost.Role = "Leader"; //} response.Model = userPost;//_userADService.GetUser(request.Username); } catch (Exception e) { response.DidError = true; response.ErrorMessage = "There was an internal error, please contact to technical support.".ToUpper(); _logger?.Error($"There was an error on '{nameof(Get)}' invocation: {e}".ToUpper()); } return(response.ToHttpResponse()); }