Ejemplo n.º 1
0
        public OperationDetails BuyContainer(int id, int count, string userName)
        {
            if (id == 0 || count == 0 || userName == "")
            {
                return(new OperationDetails(false, "Не удалось найти объект", this.ToString()));
            }
            User user = Database.ClientManager.FindUser(x => x.UserName == userName);

            if (user != null)
            {
                Product container = Database.Products.Get(id);
                if (container != null)
                {
                    double price = (container.Sale != 0 ? (container.Price - (container.Price * container.Sale) / 100) : (container.Price)) * count;
                    if (price > user.Client.Money)
                    {
                        return(new OperationDetails(false, "Недостаточно денег", this.ToString()));
                    }
                    if (user.Client.Containers?.FirstOrDefault() != null)
                    {
                        bool flag = true;
                        foreach (var i in user.Client.Containers)
                        {
                            if (i.Container.Id == container.Id)
                            {
                                i.CountOpens += count;
                                flag          = false;
                            }
                        }
                        if (flag)
                        {
                            ContainerToCountOpens model = new ContainerToCountOpens();
                            model.Container  = container;
                            model.CountOpens = count;
                            user.Client.Containers.Add(model);
                        }
                    }
                    else
                    {
                        ContainerToCountOpens model = new ContainerToCountOpens();
                        model.Container  = container;
                        model.CountOpens = count;
                        user.Client.Containers.Add(model);
                    }
                    user.Client.Money -= price;
                    Database.ClientManager.Update(user);
                    Database.Save();
                    return(new OperationDetails(true, "Покупка прошла успешно", this.ToString()));
                }
            }
            return(new OperationDetails(false, "Не удалось найти объект", this.ToString()));
        }
Ejemplo n.º 2
0
        public OperationDetails SaleProduct(int id, int count, string userName)
        {
            User user = Database.ClientManager.FindUser(x => x.UserName == userName);
            bool flag = false;
            ContainerToCountOpens delete = new ContainerToCountOpens();

            foreach (var i in user.Client.Products)
            {
                if (i.Container.Id == id)
                {
                    if (i.CountOpens > count)
                    {
                        flag               = true;
                        i.CountOpens      -= count;
                        user.Client.Money += (i.Container.Sale != 0 ? (i.Container.Price - (i.Container.Price * i.Container.Sale) / 100) : (i.Container.Price)) * count;
                    }
                    else if (i.CountOpens == count)
                    {
                        flag               = true;
                        delete             = i;
                        user.Client.Money += (i.Container.Sale != 0 ? (i.Container.Price - (i.Container.Price * i.Container.Sale) / 100) : (i.Container.Price)) * count;
                    }
                    else if (i.CountOpens < count)
                    {
                        return(new OperationDetails(false, "Количество продуктов меньше, чем " + count, this.ToString()));
                    }
                }
            }
            if (delete != null)
            {
                user.Client.Products.Remove(delete);
            }
            if (!flag)
            {
                return(new OperationDetails(false, "У вас нет такого продукта", this.ToString()));
            }
            Database.ClientManager.Update(user);
            Database.Save();
            if (count == 1)
            {
                return(new OperationDetails(true, "Товар успешно продан", this.ToString()));
            }
            else
            {
                return(new OperationDetails(true, "Товары успешно продан", this.ToString()));
            }
        }