public List <PeoplePickerUser> PostPeoplePickerData(PeoplePickerDataRequest peoplePickerDataRequest)
        {
            var currentUser   = GetCurrentUser();
            var userPickers   = new List <PeoplePickerUser>();
            var employeeeList = new List <EmployeeInfo>();

            var employeePositionList = new List <Biz.Models.EmployeePosition>();

            if (peoplePickerDataRequest.EmployeePositions != null)
            {
                employeePositionList.AddRange(peoplePickerDataRequest.EmployeePositions.Select(item => new Biz.Models.EmployeePosition {
                    Code = item.Code, Name = item.Name, PositionName = item.PositionName, VietnameseName = item.VietnameseName
                }));
            }

            if (currentUser.EmployeePosition == (int)StringConstant.EmployeePosition.DepartmentHead || currentUser.EmployeePosition == (int)StringConstant.EmployeePosition.BOD)
            {
                employeeeList = _employeeInfoDAL.GetAccountByFullNamePosition(peoplePickerDataRequest.Name, string.Empty, employeePositionList);
            }
            else
            {
                employeeeList = _employeeInfoDAL.GetAccountByFullNamePosition(peoplePickerDataRequest.Name, currentUser.Department.LookupValue, employeePositionList);
            }
            foreach (var employeee in employeeeList)
            {
                var peoplePickerUser = new PeoplePickerUser();
                peoplePickerUser.Email = employeee.Email;
                peoplePickerUser.Login = employeee.ADAccount.UserName;
                peoplePickerUser.Name  = employeee.FullName;
                peoplePickerUser.ID    = employeee.ID.ToString();
                userPickers.Add(peoplePickerUser);
            }
            return(userPickers);
        }
예제 #2
0
        public List <PeoplePickerUser> PostPeoplePickerData(PeoplePickerDataRequest peoplePickerDataRequest)
        {
            var currentUser   = GetCurrentUser();
            var userPickers   = new List <PeoplePickerUser>();
            var employeeeList = new List <EmployeeInfo>();

            if (currentUser.EmployeePosition == (int)StringConstant.EmployeePosition.DepartmentHead || currentUser.EmployeePosition == (int)StringConstant.EmployeePosition.BOD)
            {
                employeeeList = _employeeInfoDAL.GetAccountByFullNamePosition(peoplePickerDataRequest.Name, string.Empty, peoplePickerDataRequest.EmployeePositions);
            }
            else
            {
                employeeeList = _employeeInfoDAL.GetAccountByFullNamePosition(peoplePickerDataRequest.Name, currentUser.Department.LookupValue, peoplePickerDataRequest.EmployeePositions);
            }
            foreach (var employeee in employeeeList)
            {
                var peoplePickerUser = new PeoplePickerUser();
                peoplePickerUser.Email = employeee.Email;
                peoplePickerUser.Login = employeee.ADAccount.UserName;
                peoplePickerUser.Name  = employeee.FullName;
                peoplePickerUser.ID    = employeee.ID.ToString();
                userPickers.Add(peoplePickerUser);
            }
            return(userPickers);
        }
        public List <PeoplePickerUser> GetAdditionalApprovers(PeoplePickerDataRequest peoplePickerDataRequest)
        {
            var userPickers = new List <PeoplePickerUser>();

            if (peoplePickerDataRequest.EmployeePositions != null && peoplePickerDataRequest.EmployeePositions.Count > 0)
            {
                EmployeeInfo approver = _employeeInfoDAL.GetByID(Convert.ToInt32(peoplePickerDataRequest.EmployeePositions[0].PositionName));
                if (approver != null)
                {
                    var retObj = new List <EmployeeInfo>();
                    if (approver.EmployeePosition.LookupId == (int)StringConstant.EmployeePosition.BOD)
                    {
                        retObj = _employeeInfoDAL.GetAccountByFullNamePositionDepartment(peoplePickerDataRequest.Name, new List <int>()
                        {
                            (int)StringConstant.EmployeePosition.BOD
                        }, null);
                    }
                    else if (approver.EmployeePosition.LookupId == (int)StringConstant.EmployeePosition.DepartmentHead)
                    {
                        retObj = _employeeInfoDAL.GetAccountByFullNamePositionDepartment(peoplePickerDataRequest.Name, new List <int>()
                        {
                            (int)StringConstant.EmployeePosition.GroupLeader
                        }, approver.Department.LookupId);
                    }
                    else if (approver.EmployeePosition.LookupId == (int)StringConstant.EmployeePosition.TeamLeader)
                    {
                        retObj = _employeeInfoDAL.GetAccountByFullNamePositionDepartment(peoplePickerDataRequest.Name, new List <int>()
                        {
                            (int)StringConstant.EmployeePosition.AssociateTeamLeader
                        }, approver.Department.LookupId);
                    }
                    else if (approver.EmployeePosition.LookupId == (int)StringConstant.EmployeePosition.ShiftLeader)
                    {
                        retObj = _employeeInfoDAL.GetAccountByFullNamePositionDepartment(peoplePickerDataRequest.Name, new List <int>()
                        {
                            (int)StringConstant.EmployeePosition.ShiftLeader
                        }, approver.Department.LookupId);
                    }

                    foreach (var additionalApprover in retObj)
                    {
                        var peoplePickerUser = new PeoplePickerUser();
                        peoplePickerUser.Email = additionalApprover.Email;
                        peoplePickerUser.Login = additionalApprover.ADAccount.UserName;
                        peoplePickerUser.Name  = additionalApprover.FullName;
                        peoplePickerUser.ID    = additionalApprover.ID.ToString();
                        userPickers.Add(peoplePickerUser);
                    }
                }
            }

            return(userPickers);
        }
        public List <PeoplePickerUser> GetPeoplePickerData(string SearchString)
        {
            var currentUser   = GetCurrentUser();
            var userPickers   = new List <PeoplePickerUser>();
            var employeeeList = _employeeInfoDAL.GetAccountByFullNameOrId(SearchString, currentUser.Department.LookupValue);

            foreach (var employeee in employeeeList)
            {
                var peoplePickerUser = new PeoplePickerUser();
                peoplePickerUser.Email = employeee.Email;
                peoplePickerUser.Login = employeee.ADAccount.UserName;
                peoplePickerUser.Name  = employeee.FullName;
                peoplePickerUser.ID    = employeee.ID.ToString();
                userPickers.Add(peoplePickerUser);
            }
            return(userPickers);
        }
예제 #5
0
        /// <summary>
        /// This method will send notifications to external users
        /// </summary>
        /// <param name="externalSharingRequest"></param>
        /// <returns></returns>
        private GenericResponseVM SendExternalNotification(MatterInformationVM matterInformation, string permission, string externalEmail)
        {
            var clientUrl = $"{matterInformation.Client.Url}";

            try
            {
                string roleId = "";
                switch (permission.ToLower())
                {
                case "full control":
                    roleId = ((int)SPORoleIdMapping.FullControl).ToString();
                    break;

                case "contribute":
                    roleId = ((int)SPORoleIdMapping.Contribute).ToString();
                    break;

                case "read":
                    roleId = ((int)SPORoleIdMapping.Read).ToString();
                    break;
                }

                PeoplePickerUser peoplePickerUser = new PeoplePickerUser();
                peoplePickerUser.Key                 = externalEmail;
                peoplePickerUser.Description         = externalEmail;
                peoplePickerUser.DisplayText         = externalEmail;
                peoplePickerUser.EntityType          = "";
                peoplePickerUser.ProviderDisplayName = "";
                peoplePickerUser.ProviderName        = "";
                peoplePickerUser.IsResolved          = true;

                EntityData entityData = new EntityData();
                entityData.SPUserID         = externalEmail;
                entityData.Email            = externalEmail;
                entityData.IsBlocked        = "False";
                entityData.PrincipalType    = "UNVALIDATED_EMAIL_ADDRESS";
                entityData.AccountName      = externalEmail;
                entityData.SIPAddress       = externalEmail;
                peoplePickerUser.EntityData = entityData;

                string peoplePicker = Newtonsoft.Json.JsonConvert.SerializeObject(peoplePickerUser);
                peoplePicker = $"[{peoplePicker}]";
                string roleValue = $"role:{roleId}";

                bool sendEmail = true;

                bool   includeAnonymousLinkInEmail = false;
                bool   propagateAcl         = false;
                bool   useSimplifiedRoles   = true;
                string matterLandingPageUrl = $"{clientUrl}/sitepages/{matterInformation.Matter.MatterGuid + ServiceConstants.ASPX_EXTENSION}";
                string url          = matterLandingPageUrl;
                string emailBody    = $"The following information has been shared with you {matterInformation.Matter.Name}";
                string emailSubject = $"The following information has been shared with you {matterInformation.Matter.Name}";
                #region Doc Sharing API
                SharingResult sharingResult = null;
                using (var clientContext = spoAuthorization.GetClientContext(clientUrl))
                {
                    sharingResult = Microsoft.SharePoint.Client.Web.ShareObject(clientContext, url, peoplePicker, roleValue, 0, propagateAcl, sendEmail, includeAnonymousLinkInEmail, emailSubject, emailBody, useSimplifiedRoles);
                    clientContext.Load(sharingResult);
                    clientContext.ExecuteQuery();
                }
                return(null);

                #endregion
            }
            catch (Exception ex)
            {
                throw;
            }
        }