Esempio n. 1
0
        public IActionResult Find(IEnumerable <Guid> userIds)
        {
            var sw = Stopwatch.StartNew();

            userIds = userIds ?? new List <Guid>();

            var users = HostedSolution.FindUsers(userIds);

            var result = users.Select(user => new
            {
                id    = user.ID,
                name  = UserFormatter.GetUserName(user),
                email = user.Email,

                link = GetUserProfileLink(user)
            });

            Log.DebugFormat("People find {0} / {1}; Elapsed {2} ms", result.Count(), userIds.Count(), sw.ElapsedMilliseconds);
            sw.Stop();

            return(Ok(new
            {
                result
            }));
        }
Esempio n. 2
0
 public UserManagerWrapper(
     StudioNotifyService studioNotifyService,
     UserManager userManager,
     SecurityContext securityContext,
     MessageService messageService,
     CustomNamingPeople customNamingPeople,
     TenantUtil tenantUtil,
     CoreBaseSettings coreBaseSettings,
     IPSecurity.IPSecurity iPSecurity,
     DisplayUserSettingsHelper displayUserSettingsHelper,
     SettingsManager settingsManager,
     UserFormatter userFormatter)
 {
     StudioNotifyService       = studioNotifyService;
     UserManager               = userManager;
     SecurityContext           = securityContext;
     MessageService            = messageService;
     CustomNamingPeople        = customNamingPeople;
     TenantUtil                = tenantUtil;
     CoreBaseSettings          = coreBaseSettings;
     IPSecurity                = iPSecurity;
     DisplayUserSettingsHelper = displayUserSettingsHelper;
     SettingsManager           = settingsManager;
     UserFormatter             = userFormatter;
 }
Esempio n. 3
0
 public PortalController(
     IConfiguration configuration,
     Core.SecurityContext securityContext,
     TenantManager tenantManager,
     SettingsManager settingsManager,
     ApiSystemHelper apiSystemHelper,
     CommonMethods commonMethods,
     HostedSolution hostedSolution,
     CoreSettings coreSettings,
     TenantDomainValidator tenantDomainValidator,
     UserFormatter userFormatter,
     UserManagerWrapper userManagerWrapper,
     CommonConstants commonConstants,
     IOptionsMonitor <ILog> option,
     TimeZonesProvider timeZonesProvider,
     TimeZoneConverter timeZoneConverter)
 {
     Configuration         = configuration;
     SecurityContext       = securityContext;
     TenantManager         = tenantManager;
     SettingsManager       = settingsManager;
     ApiSystemHelper       = apiSystemHelper;
     CommonMethods         = commonMethods;
     HostedSolution        = hostedSolution;
     CoreSettings          = coreSettings;
     TenantDomainValidator = tenantDomainValidator;
     UserFormatter         = userFormatter;
     UserManagerWrapper    = userManagerWrapper;
     CommonConstants       = commonConstants;
     TimeZonesProvider     = timeZonesProvider;
     TimeZoneConverter     = timeZoneConverter;
     Log = option.Get("ASC.ApiSystem");
 }
 public RegistrationController(
     CommonMethods commonMethods,
     CommonConstants commonConstants,
     IOptionsSnapshot <HostedSolution> hostedSolution,
     TimeZonesProvider timeZonesProvider,
     TimeZoneConverter timeZoneConverter,
     ApiSystemHelper apiSystemHelper,
     SecurityContext securityContext,
     TenantManager tenantManager,
     SettingsManager settingsManager,
     CoreSettings coreSettings,
     TenantDomainValidator tenantDomainValidator,
     UserFormatter userFormatter,
     UserManagerWrapper userManagerWrapper,
     IConfiguration configuration,
     IOptionsMonitor <ILog> option,
     PasswordHasher passwordHasher)
 {
     CommonMethods         = commonMethods;
     CommonConstants       = commonConstants;
     HostedSolution        = hostedSolution.Value;
     TimeZonesProvider     = timeZonesProvider;
     TimeZoneConverter     = timeZoneConverter;
     ApiSystemHelper       = apiSystemHelper;
     SecurityContext       = securityContext;
     TenantManager         = tenantManager;
     SettingsManager       = settingsManager;
     CoreSettings          = coreSettings;
     TenantDomainValidator = tenantDomainValidator;
     UserFormatter         = userFormatter;
     UserManagerWrapper    = userManagerWrapper;
     Configuration         = configuration;
     PasswordHasher        = passwordHasher;
     Log = option.Get("ASC.ApiSystem");
 }
Esempio n. 5
0
        public override Vcard GetVCard(Jid jid)
        {
            ASCContext.SetCurrentTenant(jid.Server);

            jid = new Jid(jid.Bare.ToLowerInvariant());
            var ui = ASCContext.UserManager.GetUserByUserName(jid.User);

            if (ui != null)
            {
                var vcard = (Vcard)cache.Get(jid.ToString());
                if (vcard != null)
                {
                    return(vcard);
                }

                vcard             = new Vcard();
                vcard.Name        = new Name(ui.LastName, ui.FirstName, null);
                vcard.Fullname    = UserFormatter.GetUserName(ui);
                vcard.Nickname    = ui.UserName;
                vcard.Description = ui.Notes;
                if (ui.BirthDate != null)
                {
                    vcard.Birthday = ui.BirthDate.Value;
                }
                vcard.JabberId = jid;
                if (ui.Sex.HasValue)
                {
                    vcard.Gender = ui.Sex.Value ? Gender.MALE : Gender.FEMALE;
                }

                var index = ui.Contacts.FindIndex(c => string.Compare(c, "phone", true) == 0) + 1;
                if (0 < index && index < ui.Contacts.Count)
                {
                    vcard.AddTelephoneNumber(new Telephone(TelephoneLocation.WORK, TelephoneType.NUMBER, ui.Contacts[index]));
                }
                vcard.AddEmailAddress(new Email(EmailType.INTERNET, ui.Email, true));

                var tenant      = ASCContext.GetCurrentTenant();
                var departments = string.Join(", ", CoreContext.UserManager.GetUserGroups(ui.ID).Select(d => HttpUtility.HtmlEncode(d.Name)).ToArray());
                if (tenant != null)
                {
                    vcard.Organization = new Organization(tenant.Name, departments);
                }
                vcard.Title = ui.Title;

                var image = PreparePhoto(ASCContext.UserManager.GetUserPhoto(ui.ID, Guid.Empty));
                if (image != null)
                {
                    vcard.Photo = new Photo(image, ImageFormat.Png);
                    image.Dispose();
                }

                cache.Insert(jid.ToString(), vcard, CACHE_TIMEOUT);
                return(vcard);
            }
            else
            {
                return(base.GetVCard(jid));
            }
        }
        private bool CheckValidName(string name, out object error)
        {
            error = null;

            if (string.IsNullOrEmpty(name = (name ?? "").Trim()))
            {
                error = new
                {
                    error   = new[] { "error" },
                    message = "name is required"
                };

                return(false);
            }

            if (!UserFormatter.IsValidUserName(name, string.Empty))
            {
                error = new
                {
                    error   = new[] { "error" },
                    message = "name is incorrect"
                };

                return(false);
            }

            return(true);
        }
Esempio n. 7
0
 public void Initialize()
 {
     userActionMock = new Mock <IUserAction>();
     userDomainMock = new Mock <IUserDomain>();
     userFakedata   = new UserFakeData();
     userFormatter  = new UserFormatter();
 }
Esempio n. 8
0
 public AuthManager(IUserService service, UserManager userManager, UserFormatter userFormatter, TenantManager tenantManager)
 {
     userService   = service;
     UserManager   = userManager;
     UserFormatter = userFormatter;
     TenantManager = tenantManager;
 }
        public static string GetFullUserName(UserInfo userInfo, DisplayUserNameFormat format, bool withHtmlEncode)
        {
            if (userInfo == null)
            {
                return(string.Empty);
            }
            if (!userInfo.ID.Equals(Guid.Empty) && !CoreContext.UserManager.UserExists(userInfo.ID))
            {
                try
                {
                    var resourceType     = Type.GetType("Resources.Resource, ASC.Web.Studio");
                    var resourceProperty = resourceType.GetProperty("ProfileRemoved", BindingFlags.Static | BindingFlags.Public);
                    var resourceValue    = (string)resourceProperty.GetValue(null);

                    return(string.IsNullOrEmpty(resourceValue) ? RemovedProfileName : resourceValue);
                }
                catch (Exception)
                {
                    return(RemovedProfileName);
                }
            }
            var result = UserFormatter.GetUserName(userInfo, format);

            return(withHtmlEncode ? result.HtmlEncode() : result);
        }
Esempio n. 10
0
 public AuditEventsRepository(MessageTarget messageTarget, UserFormatter userFormatter, DbContextManager <AuditTrailContext> dbContextManager, AuditActionMapper auditActionMapper)
 {
     MessageTarget     = messageTarget;
     UserFormatter     = userFormatter;
     AuditTrailContext = dbContextManager.Value;
     AuditActionMapper = auditActionMapper;
 }
        public void SetNoneUserChange(UserInfo user)
        {
            var change = new LdapChange(user.Sid,
                                        UserFormatter.GetUserName(user, DisplayUserNameFormat.Default), user.Email,
                                        LdapChangeType.User, LdapChangeAction.None);

            Add(change);
        }
Esempio n. 12
0
        public int CompareTo(object obj)
        {
            var other = obj as Participant;

            return(other == null
                       ? Comparer.Default.Compare(this, obj)
                       : UserFormatter.Compare(UserInfo, other.UserInfo));
        }
Esempio n. 13
0
        private List <UserInfo> SyncGroupsUsers(List <UserInfo> uniqueLdapGroupUsers)
        {
            const double percents = 30;

            var step = percents / uniqueLdapGroupUsers.Count;

            var percentage = (double)GetProgress();

            var newUniqueLdapGroupUsers = new List <UserInfo>();

            var index = 0;
            var count = uniqueLdapGroupUsers.Count;

            int i, len;

            for (i = 0, len = uniqueLdapGroupUsers.Count; i < len; i++)
            {
                var ldapGroupUser = uniqueLdapGroupUsers[i];

                SetProgress(Convert.ToInt32(percentage),
                            currentSource:
                            string.Format("({0}/{1}): {2}", ++index, count,
                                          UserFormatter.GetUserName(ldapGroupUser, DisplayUserNameFormat.Default)));

                UserInfo user;
                switch (OperationType)
                {
                case LdapOperationType.Save:
                case LdapOperationType.Sync:
                    user = LDAPUserManager.SyncLDAPUser(ldapGroupUser, uniqueLdapGroupUsers);
                    if (!Equals(user, Constants.LostUser))
                    {
                        newUniqueLdapGroupUsers.Add(user);
                    }
                    break;

                case LdapOperationType.SaveTest:
                case LdapOperationType.SyncTest:
                    LdapChangeCollection changes;
                    user = LDAPUserManager.GetLDAPSyncUserChange(ldapGroupUser, uniqueLdapGroupUsers, out changes);
                    if (!Equals(user, Constants.LostUser))
                    {
                        newUniqueLdapGroupUsers.Add(user);
                    }
                    _ldapChanges.AddRange(changes);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }

                percentage += step;
            }

            return(newUniqueLdapGroupUsers);
        }
Esempio n. 14
0
 public UserAccount(UserInfo info, int tenant, UserFormatter userFormatter)
 {
     ID        = info.ID;
     Name      = userFormatter.GetUserName(info);
     FirstName = info.FirstName;
     LastName  = info.LastName;
     Title     = info.Title;
     Tenant    = tenant;
     Email     = info.Email;
 }
 protected override IEnumerable <KeyValuePair <string, object> > GetClientVariables(HttpContext context)
 {
     return(new List <KeyValuePair <string, object> >(1)
     {
         RegisterObject(new
         {
             emptyScreenPeopleFilter = WebImageSupplier.GetAbsoluteWebPath("empty_screen_filter.png"),
             userDisplayFormat = (int)UserFormatter.GetUserDisplayDefaultOrder()
         })
     });
 }
Esempio n. 16
0
        public void Search()
        {
            Console.WriteLine(@"Welcome to Zendesk search engine
Press Ctrl+C to exit at any time, Press enter to continue

Select Search options: 
     * Press 1 to search Zendesk
     * Press 2 to view a list of searchable fields
     * Press Ctrl+C to exit");

            var userInputSelectSearch = Console.ReadLine();

            if (userInputSelectSearch == "1")
            {
                Console.WriteLine(@"Select 1) Users 2) Tickets 3) Organisations");
                var userSearchInput    = Console.ReadLine();
                var termAndValueResult = SearchTermAndValue();

                switch (userSearchInput)
                {
                case "1":
                    Console.WriteLine($"Searching users for Key: {termAndValueResult.term} and Value: {termAndValueResult.val}");
                    var userSearchResult = _user.GetUserDetails(termAndValueResult.term, termAndValueResult.val);
                    UserFormatter.UserFormatOutput(userSearchResult);
                    break;

                case "2":
                    Console.WriteLine($"Searching tickets for Key: {termAndValueResult.term} and Value: {termAndValueResult.val}");
                    var ticketSearchResult = _ticket.GetTicketDetails(termAndValueResult.term, termAndValueResult.val);
                    TicketFormatter.FormatTicketOutput(ticketSearchResult);
                    break;

                case "3":
                    Console.WriteLine($"Searching organisations for Key: {termAndValueResult.term} and Value: {termAndValueResult.val}");
                    var orgSearchResult = _org.GetOrganizationDetails(termAndValueResult.term, termAndValueResult.val);
                    OranizationFormatter.FormatOrganizationOutput(orgSearchResult);
                    break;

                default:
                    Console.WriteLine("Invalid search option");
                    break;
                }
            }
            else if (userInputSelectSearch == "2")
            {
                GetAllSearchTerms.SearchTerms();
            }
            else
            {
                Console.WriteLine("No results found. Please check for valid inputs");
            }
        }
 public static string GetFullUserName(UserInfo userInfo, DisplayUserNameFormat format, bool withHtmlEncode)
 {
     if (userInfo == null)
     {
         return string.Empty;
     }
     if (!userInfo.ID.Equals(Guid.Empty) && !CoreContext.UserManager.UserExists(userInfo.ID))
     {
         return RemovedProfileName;
     }
     var result = UserFormatter.GetUserName(userInfo, format);
     return withHtmlEncode ? result.HtmlEncode() : result;
 }
        public void SetAddUserChange(UserInfo user, ILog log = null)
        {
            var fieldChanges =
                LdapUserMapping.Fields.Select(field => GetPropChange(field, after: user, log: log))
                .Where(pch => pch != null)
                .ToList();

            var change = new LdapChange(user.Sid,
                                        UserFormatter.GetUserName(user, DisplayUserNameFormat.Default), user.Email,
                                        LdapChangeType.User, LdapChangeAction.Add, fieldChanges);

            Add(change);
        }
        public int Compare(UserInfo x, UserInfo y)
        {
            int result = 0;

            switch (SortOrder)
            {
            case UserSortOrder.DisplayName:
                result = UserFormatter.Compare(x, y);
                break;
            }

            return(!Descending ? result : -result);
        }
        public void SetSaveAsPortalUserChange(UserInfo user)
        {
            var fieldChanges = new List <LdapItemChange>
            {
                new LdapItemChange(LdapItemChangeKey.Sid, user.Sid, null)
            };

            var change = new LdapChange(user.Sid,
                                        UserFormatter.GetUserName(user, DisplayUserNameFormat.Default),
                                        user.Email, LdapChangeType.User, LdapChangeAction.SaveAsPortal, fieldChanges);

            Add(change);
        }
        public void SetUpdateUserChange(UserInfo beforeUserInfo, UserInfo afterUserInfo, ILog log = null)
        {
            var fieldChanges =
                LdapUserMapping.Fields.Select(field => GetPropChange(field, beforeUserInfo, afterUserInfo, log))
                .Where(pch => pch != null)
                .ToList();

            var change = new LdapChange(beforeUserInfo.Sid,
                                        UserFormatter.GetUserName(afterUserInfo, DisplayUserNameFormat.Default), afterUserInfo.Email,
                                        LdapChangeType.User, LdapChangeAction.Update, fieldChanges);

            Add(change);
        }
        public void SetRemoveGroupMembersChange(GroupInfo group,
                                                List <UserInfo> members)
        {
            var fieldChanges =
                members.Select(
                    member =>
                    new LdapItemChange(LdapItemChangeKey.Member, null,
                                       UserFormatter.GetUserName(member, DisplayUserNameFormat.Default))).ToList();

            var change = new LdapChange(group.Sid, group.Name,
                                        LdapChangeType.Group, LdapChangeAction.RemoveMember, fieldChanges);

            Add(change);
        }
Esempio n. 23
0
        public static string GetFullUserName(UserInfo userInfo, DisplayUserNameFormat format, bool withHtmlEncode)
        {
            if (userInfo == null || userInfo.ID.Equals(Common.Security.Authorizing.Constants.Demo.ID))
            {
                return("Demo");
            }
            if (!userInfo.ID.Equals(Guid.Empty) && !CoreContext.UserManager.UserExists(userInfo.ID))
            {
                return("profile removed");
            }
            var result = UserFormatter.GetUserName(userInfo, format);

            return(withHtmlEncode ? result.HtmlEncode() : result);
        }
Esempio n. 24
0
        private UserRosterItem ToUserRosterItem(UserInfo u, string server)
        {
            var item = new UserRosterItem(new Jid(u.UserName + "@" + server))
            {
                Name         = UserFormatter.GetUserName(u),
                Subscribtion = SubscriptionType.both,
                Ask          = AskType.NONE,
            };

            foreach (var g in ASCContext.UserManager.GetUserGroups(u.ID))
            {
                item.Groups.Add(g.Name);
            }
            return(item);
        }
Esempio n. 25
0
        private UserInfo AddUser(UserInfo userInfo)
        {
            UserInfo newUserInfo;

            try
            {
                newUserInfo = userInfo.Clone() as UserInfo;

                if (newUserInfo == null)
                {
                    return(Constants.LostUser);
                }

                _log.DebugFormat("Adding or updating user in database, userId={0}", userInfo.ID);

                SecurityContext.CurrentAccount = ASC.Core.Configuration.Constants.CoreSystem;

                if (string.IsNullOrEmpty(newUserInfo.UserName))
                {
                    var limitExceeded = TenantStatisticsProvider.GetUsersCount() >= TenantExtra.GetTenantQuota().ActiveUsers;

                    newUserInfo = UserManagerWrapper.AddUser(newUserInfo, UserManagerWrapper.GeneratePassword(), true,
                                                             false, isVisitor: limitExceeded);
                }
                else
                {
                    if (!UserFormatter.IsValidUserName(userInfo.FirstName, userInfo.LastName))
                    {
                        throw new Exception(Resource.ErrorIncorrectUserName);
                    }

                    CoreContext.UserManager.SaveUserInfo(newUserInfo);
                }

                /*var photoUrl = samlResponse.GetRemotePhotoUrl();
                 * if (!string.IsNullOrEmpty(photoUrl))
                 * {
                 *  var photoLoader = new UserPhotoLoader();
                 *  photoLoader.SaveOrUpdatePhoto(photoUrl, userInfo.ID);
                 * }*/
            }
            finally
            {
                SecurityContext.Logout();
            }

            return(newUserInfo);
        }
        private static AuditEvent ToAuditEvent(object[] row)
        {
            try
            {
                var evt = new AuditEvent
                {
                    Id        = Convert.ToInt32(row[0]),
                    IP        = Convert.ToString(row[1]),
                    Initiator = Convert.ToString(row[2]),
                    Browser   = Convert.ToString(row[3]),
                    Mobile    = Convert.ToBoolean(row[4]),
                    Platform  = Convert.ToString(row[5]),
                    Date      = TenantUtil.DateTimeFromUtc(Convert.ToDateTime(row[6])),
                    TenantId  = Convert.ToInt32(row[7]),
                    UserId    = Guid.Parse(Convert.ToString(row[8])),
                    Page      = Convert.ToString(row[9]),
                    Action    = Convert.ToInt32(row[10])
                };

                if (row[11] != null)
                {
                    evt.Description = JsonConvert.DeserializeObject <IList <string> >(Convert.ToString(row[11]), new JsonSerializerSettings
                    {
                        DateTimeZoneHandling = DateTimeZoneHandling.Utc
                    });
                }

                evt.UserName = (row[12] != null && row[13] != null)
                                   ? UserFormatter.GetUserName(Convert.ToString(row[12]), Convert.ToString(row[13]))
                                   : evt.UserId == Core.Configuration.Constants.CoreSystem.ID ? AuditReportResource.SystemAccount
                                         : evt.UserId == Core.Configuration.Constants.Guest.ID ? AuditReportResource.GuestAccount
                                               : evt.Initiator ?? AuditReportResource.UnknownAccount;

                evt.ActionText     = AuditActionMapper.GetActionText(evt);
                evt.ActionTypeText = AuditActionMapper.GetActionTypeText(evt);
                evt.Product        = AuditActionMapper.GetProductText(evt);
                evt.Module         = AuditActionMapper.GetModuleText(evt);

                return(evt);
            }
            catch (Exception)
            {
                //log.Error("Error while forming event from db: " + ex);
                return(null);
            }
        }
Esempio n. 27
0
        private void TurnOffLDAP()
        {
            const double percents = 48;

            SetProgress((int)percents, Resource.LdapSettingsModifyLdapUsers);

            var existingLDAPUsers = CoreContext.UserManager.GetUsers(EmployeeStatus.All).Where(u => u.Sid != null).ToList();

            var step = percents / existingLDAPUsers.Count;

            var percentage = (double)GetProgress();

            var index = 0;
            var count = existingLDAPUsers.Count;

            foreach (var existingLDAPUser in existingLDAPUsers)
            {
                SetProgress(Convert.ToInt32(percentage),
                            currentSource:
                            string.Format("({0}/{1}): {2}", ++index, count,
                                          UserFormatter.GetUserName(existingLDAPUser, DisplayUserNameFormat.Default)));

                switch (OperationType)
                {
                case LdapOperationType.Save:
                case LdapOperationType.Sync:
                    existingLDAPUser.Sid = null;
                    existingLDAPUser.ConvertExternalContactsToOrdinary();

                    Logger.DebugFormat("CoreContext.UserManager.SaveUserInfo({0})", existingLDAPUser.GetUserInfoString());

                    CoreContext.UserManager.SaveUserInfo(existingLDAPUser);
                    break;

                case LdapOperationType.SaveTest:
                case LdapOperationType.SyncTest:
                    _ldapChanges.SetSaveAsPortalUserChange(existingLDAPUser);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }

                percentage += step;
            }
        }
Esempio n. 28
0
 public PeopleController(
     IOptionsMonitor <ILog> option,
     IOptionsSnapshot <HostedSolution> hostedSolutionOptions,
     UserFormatter userFormatter,
     ICache cache,
     CoreSettings coreSettings,
     CommonLinkUtility commonLinkUtility,
     IHttpContextAccessor httpContextAccessor)
 {
     Log                 = option.Get("ASC.ApiSystem.People");
     HostedSolution      = hostedSolutionOptions.Value;
     UserFormatter       = userFormatter;
     Cache               = cache;
     CoreSettings        = coreSettings;
     CommonLinkUtility   = commonLinkUtility;
     HttpContextAccessor = httpContextAccessor;
 }
Esempio n. 29
0
        private static LoginEvent ToLoginEvent(object[] row)
        {
            try
            {
                var evt = new LoginEvent
                {
                    Id       = Convert.ToInt32(row[0]),
                    IP       = Convert.ToString(row[1]),
                    Login    = Convert.ToString(row[2]),
                    Browser  = Convert.ToString(row[3]),
                    Platform = Convert.ToString(row[4]),
                    Date     = TenantUtil.DateTimeFromUtc(Convert.ToDateTime(row[5])),
                    TenantId = Convert.ToInt32(row[6]),
                    UserId   = Guid.Parse(Convert.ToString(row[7])),
                    Page     = Convert.ToString(row[8]),
                    Action   = Convert.ToInt32(row[9])
                };

                if (row[10] != null)
                {
                    evt.Description = JsonConvert.DeserializeObject <IList <string> >(
                        Convert.ToString(row[10]),
                        new JsonSerializerSettings
                    {
                        DateTimeZoneHandling = DateTimeZoneHandling.Utc
                    });
                }
                evt.UserName = (row[11] != null && row[12] != null)
                                   ? UserFormatter.GetUserName(Convert.ToString(row[11]), Convert.ToString(row[12]))
                                   : !string.IsNullOrWhiteSpace(evt.Login)
                                         ? evt.Login
                                         : evt.UserId == Core.Configuration.Constants.Guest.ID
                                               ? AuditReportResource.GuestAccount
                                               : AuditReportResource.UnknownAccount;

                evt.ActionText = AuditActionMapper.GetActionText(evt);

                return(evt);
            }
            catch (Exception)
            {
                //log.Error("Error while forming event from db: " + ex);
                return(null);
            }
        }
Esempio n. 30
0
        private void SyncDbUsers(List <UserInfo> ldapUsers)
        {
            const double percents = 35;

            var step = percents / ldapUsers.Count;

            var percentage = (double)GetProgress();

            if (!ldapUsers.Any())
            {
                return;
            }

            var index = 0;
            var count = ldapUsers.Count;

            foreach (var userInfo in ldapUsers)
            {
                SetProgress(Convert.ToInt32(percentage),
                            currentSource:
                            string.Format("({0}/{1}): {2}", ++index, count,
                                          UserFormatter.GetUserName(userInfo, DisplayUserNameFormat.Default)));

                switch (OperationType)
                {
                case LdapOperationType.Save:
                case LdapOperationType.Sync:
                    LDAPUserManager.SyncLDAPUser(userInfo, ldapUsers);
                    break;

                case LdapOperationType.SaveTest:
                case LdapOperationType.SyncTest:
                    LdapChangeCollection changes;
                    LDAPUserManager.GetLDAPSyncUserChange(userInfo, ldapUsers, out changes);
                    _ldapChanges.AddRange(changes);
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }

                percentage += step;
            }
        }