Exemplo n.º 1
0
        public void VerifyAppointedBy(Guid wasAppointed, Guid appointer, ICloneableException <Exception> e)
        {
            var toRemove = Owners.FirstOrDefault(o => o.OwnerGuid.Equals(wasAppointed));

            if (toRemove == null)
            {
                toRemove = Managers.FirstOrDefault(m => m.OwnerGuid.Equals(wasAppointed));
            }
            if (toRemove == null)
            {
                StackTrace stackTrace = new StackTrace();
                var        msg        = $"User with Guid - {wasAppointed} is not an owner or manager of shop {Guid}" +
                                        $" cant complete {stackTrace.GetFrame(1).GetMethod().Name}";
                throw e.Clone(msg);
            }
            var byCreator = Creator.OwnerGuid.Equals(toRemove.AppointerGuid);
            var byOwner   = Owners.Any(o => o.OwnerGuid.Equals(toRemove.AppointerGuid));

            if (!(byCreator || byOwner))
            {
                StackTrace stackTrace = new StackTrace();
                var        msg        = $"User with Guid - {wasAppointed} was not appointed by {appointer}" +
                                        $" cant complete {stackTrace.GetFrame(1).GetMethod().Name}";
                throw e.Clone(msg);
            }
        }
Exemplo n.º 2
0
 public bool IsOwner(Guid userGuid)
 {
     if (Creator.OwnerGuid.Equals(userGuid))
     {
         return(true);
     }
     return(Owners.FirstOrDefault(o => o.OwnerGuid.Equals(userGuid)) != null);
 }
Exemplo n.º 3
0
 private async Task RestoreGridAsync(OwnerDataModel selectedDirtyOwner)
 {
     if (selectedDirtyOwner != null && selectedDirtyOwner.IsNew)
     {
         selectedDirtyOwner.IsDirty = false;
         Owners.Remove(selectedDirtyOwner);
         SelectedOwner = Owners.FirstOrDefault();
     }
     else
     {
         await GetOwnerAndUpdateGridAsync(selectedDirtyOwner, false);
     }
 }
Exemplo n.º 4
0
        public ICollection <Guid> CascadeRemoveShopOwner(Guid userGuid, Guid ownerToRemoveGuid)
        {
            var removedOwners = new HashSet <Guid>();

            removedOwners.Add(ownerToRemoveGuid);
            foreach (var owner in Owners.ToList())
            {
                if (owner.AppointerGuid.Equals(ownerToRemoveGuid))
                {
                    removedOwners.Add(owner.OwnerGuid);
                    var cascadeRemovedOwners = CascadeRemoveShopOwner(ownerToRemoveGuid, owner.OwnerGuid);
                    foreach (var cascRemovedOwner in cascadeRemovedOwners)
                    {
                        removedOwners.Add(cascRemovedOwner);
                    }
                }
            }
            Owners.Remove(Owners.FirstOrDefault(o => o.OwnerGuid.Equals(ownerToRemoveGuid)));
            return(removedOwners);
        }
Exemplo n.º 5
0
        private async Task DeleteOwnerAsync()
        {
            bool isValid = false;

            if (SelectedOwner != null && SelectedOwner.IdOwner != null)
            {
                isValid = await ValidateDeletionOfOwnerAsync();
            }

            if (isValid)
            {
                try
                {
                    BusyIndicator.BlockUI();
                    var result = await requestManager.DeleteAsync($"{RoutingConstants.OwnerRoute}/{SelectedOwner.IdOwner}");

                    if (result != null && result.IsError)
                    {
                        notificationManager.Alert(result.ErrorMessage, result.IsFatalError);
                    }
                    else if (!result.IsError)
                    {
                        notificationManager.ToastAlert(string.Format(Resources.BankDeleted, SelectedOwner.OwnerCode));
                        var owner = Owners.FirstOrDefault(x => x.IdOwner == SelectedOwner.IdOwner);
                        if (owner != null)
                        {
                            Owners.Remove(owner);
                        }
                    }
                }
                finally
                {
                    BusyIndicator.UnblockUI();
                }
            }
        }
Exemplo n.º 6
0
        private void ConstructModel()
        {
            switch (AccountOwnerPartialViewType)
            {
            case AccountOwnerPartialViewType.Undefined:
                break;

            case AccountOwnerPartialViewType.ForAccount:
                try
                {
                    // Если модель должна быть сформирована в виде "показать всех подписчиков счёта", тогда
                    // в списке Accounts все элементы будут одинаковые - один и тот же новер счёта.
                    var acc = CurrentAccount = Accounts.GroupBy(x => x.ID).Single().FirstOrDefault();     // "превращаем" все эти одинаковые элементы в один элемент
                    if (acc != null)
                    {
                        // Если всё прошло нормально - формируем список "пользователь счёта acc - права пользователя на этот счёт"
                        var list = (from right in AccountUserRights
                                    let listItemOwner = Owners.FirstOrDefault(x => x.UserId == right.Item1)
                                                        select new Tuple <AccountUserModel, UserAccountRights>(listItemOwner, right.Item2)).ToList();
                        // Заполняем кортеж "ForAccount", которая будет использоваться в представлении "AccountOwnerPartialForAccount"
                        ForAccount = new Tuple <Account, List <Tuple <AccountUserModel, UserAccountRights> > >(acc, list);
                    }
                }
                #region
                catch (InvalidOperationException ex)
                {
                    Logger.Error(
                        "ConstructModel() - при формировании модели для представления AccountOwner, при просмотре управляющих счёта, " +
                        "было переданно больше одного счёта или не одного", ex);
                }
                catch (Exception ex)
                {
                    Logger.Error("ConstructModel() - Не найдено счёта", ex);
                }
                #endregion
                break;

            case AccountOwnerPartialViewType.ForOwner:
                try
                {
                    // всё аналогично вредыдущему случаю "case"
                    var own = CurrentOwner = Owners.GroupBy(x => x.Title).Single().FirstOrDefault();
                    if (own != null)
                    {
                        var list = (from right in AccountUserRights
                                    let listItemAccount = Accounts.FirstOrDefault(x => x.ID == right.Item1)
                                                          select new Tuple <Account, UserAccountRights>(listItemAccount, right.Item2)).ToList();

                        ForUser = new Tuple <AccountUserModel, List <Tuple <Account, UserAccountRights> > >(own, list);
                    }
                }
                #region
                catch (InvalidOperationException ex)
                {
                    Logger.Error("ConstructModel() - при формировании модели для представления AccountOwner, при просмотре счетов управляющего, " +
                                 "было переданно больше одного управляющего или не одного", ex);
                }
                catch (Exception ex)
                {
                    Logger.Error("ConstructModel() - Не найдено пользователя", ex);
                }

                #endregion
                break;
            }
        }
Exemplo n.º 7
0
        public string GetOwner(int OwnerID)
        {
            var owner = Owners.FirstOrDefault(o => o.Value == OwnerID.ToString());

            return(owner == null ? "Unowned" : owner.Text);
        }
Exemplo n.º 8
0
 public ShopOwner GetOwner(Guid ownerGuid) => Owners.FirstOrDefault(o => o.OwnerGuid.Equals(ownerGuid));
Exemplo n.º 9
0
 public Owner this[string name]
 {
     get { return(Owners?.FirstOrDefault(x => x.Name == name)); }
 }