Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        //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);
        }
Esempio n. 3
0
        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());
        }