Exemplo n.º 1
0
        public async Task Register()
        {
            try
            {
                List <int> userTypes = new List <int>();
                userTypes.Add((int)eNatureBeauty.Model.Enums.UserTypes.User);

                UserAddressesUpsertRequest userAddressesUpserRequest = new UserAddressesUpsertRequest
                {
                    AddressName = Address,
                    City        = City,
                    Country     = Country,
                };
                var address = await _addressesService.Insert <Model.UserAddresses>(userAddressesUpserRequest);


                UsersInsertRequest request = new UsersInsertRequest
                {
                    Email                = Email,
                    FirstName            = FirstName,
                    LastName             = LastName,
                    Password             = Password,
                    PasswordConfirmation = PasswordConf,
                    Status               = true,
                    Telephone            = Telephone,
                    UserName             = UserName,
                    UserTypes            = userTypes,
                    UserAddressId        = address.Id
                };

                var user = await _service.Insert <Model.Users>(request);

                Global.LoggedUser            = user;
                Application.Current.MainPage = new MainPage(user);
                await Application.Current.MainPage.DisplayAlert("Success", "Welcome new User!", "OK");
            }
            catch
            {
                await Application.Current.MainPage.DisplayAlert("Error", "Error", "OK");
            }
        }
        public async Task SaveOrder()
        {
            await AddressLenght();
            await CityLenght();
            await StateLenght();

            var user = await _usersService.GetById <Model.Users>(User.Id);

            UserAddress = await _userAddresssesService.GetById <Model.UserAddresses>(user.UserAddressId);

            UserAddressesUpsertRequest userAddressesUpserRequest = new UserAddressesUpsertRequest
            {
                AddressName = AddressName,
                City        = City,
                Country     = Country,
                Id          = UserAddress.Id
            };

            await _userAddresssesService.Update <Model.UserAddresses>(UserAddress.Id, userAddressesUpserRequest);


            OrdersUpsertRequest ordersUpsertRequest = new OrdersUpsertRequest
            {
                Date        = DateTime.Now,
                Cancel      = false,
                OrderNumber = Helper.GenerateString(19),
                Status      = OrderStatusTypes.Created.ToString(),
                UserId      = User.Id
            };

            try
            {
                var order = await _ordersService.Insert <Model.Orders>(ordersUpsertRequest);

                OutputsUpsertRequest outputsUpsertRequest = new OutputsUpsertRequest
                {
                    Date            = DateTime.Now,
                    UserId          = User.Id,
                    Finished        = false,
                    OrderId         = order.Id,
                    ReceiveNumber   = Helper.GenerateString(19),
                    ValueWithoutPdv = TotalNoPDV,
                    ValueWithPdv    = Total
                };
                var outputs = await _outputsService.Insert <Model.Outputs>(outputsUpsertRequest);

                foreach (var item in ProductsList)
                {
                    OutputProductsUpsertRequest request = new OutputProductsUpsertRequest
                    {
                        ProductId = item.Product.Id,
                        Price     = item.Product.Price,
                        OutputId  = outputs.Id,
                        Quantity  = (int)item.Quantity,
                        Discount  = (item.Quantity / 2)
                    };
                    if (request.Quantity > 100)
                    {
                        request.Discount = 50;
                    }
                    if (request.Quantity < 20)
                    {
                        request.Discount = 0;
                    }
                    await _outputProductsService.Insert <Model.OutputProducts>(request);
                }
                ProductsList.Clear();
                CartService.Cart.Clear();
                await Application.Current.MainPage.DisplayAlert("Success", "Order is sent!", "OK");
            }
            catch
            {
                await Application.Current.MainPage.DisplayAlert("Error", "", "OK");
            }
        }