Exemple #1
0
        public Either <Error, int> Insert(FoodInsertModel entity)
        {
            try
            {
                if (entity == null)
                {
                    return(new Left <Error, int>(new ArgumentNotSet(nameof(entity))));
                }

                using (var context = _factory.Create())
                {
                    var foodEntity = new FoodEntity()
                    {
                        Name         = entity.Name,
                        Type         = entity.Type,
                        Price        = entity.Price,
                        Description  = entity.Description,
                        IsInactive   = entity.IsInactive,
                        DailyMenuId  = entity.DailyMenuId,
                        RestaurantId = entity.RestaurantId,
                    };

                    var addedEntity = context.Food.Add(foodEntity).Entity;
                    context.SaveChanges();
                    return(new Right <Error, int>(addedEntity.Id));
                }
            }
            catch (Exception ex)
            {
                return(new Left <Error, int>(new UnknownError(ex.ToString())));
            }
        }
        public Either <Error, int> Insert(CustomerInsertModel entity)
        {
            try
            {
                using (var context = _factory.Create())
                {
                    var customerEntity = new CustomerEntity()
                    {
                        Name         = entity.Name,
                        GoogleUserId = entity.GoogleUserId,
                        Balance      = entity.Balance,
                        LocationId   = entity.LocationId,
                        RoleId       = entity.RoleId
                    };

                    var addedEntity = context.Customer.Add(customerEntity).Entity;
                    context.SaveChanges();
                    return(new Right <Error, int>(addedEntity.Id));
                }
            }
            catch (Exception ex)
            {
                return(new Left <Error, int>(new UnknownError(ex.ToString())));
            }
        }
        public Either <Error, int> Insert(OrderInsertModel entity)
        {
            try
            {
                using (var context = _factory.Create())
                {
                    var orderEntity = new OrderEntity()
                    {
                        CustomerId = entity.CustomerId,
                        Date       = entity.Date,
                        MealId     = entity.MealId,
                        Note       = entity.Note,
                        Price      = entity.Price,
                    };

                    var addedEntity = context.Order.Add(orderEntity).Entity;
                    context.SaveChanges();
                    return(new Right <Error, int>(addedEntity.Id));
                }
            }
            catch (Exception ex)
            {
                return(new Left <Error, int>(new UnknownError(ex.ToString())));
            }
        }
Exemple #4
0
 private void SeedPayment()
 {
     using (var dc = _factory.Create())
     {
         dc.Payment.Add(new PaymentEntity()
         {
             Amount     = 2000,
             CustomerId = 1,
         });
         dc.SaveChanges();
     }
 }
        public MealEntity Convert(Meal source, MealEntity destination, ResolutionContext context)
        {
            using (var dbContext = _factory.Create())
            {
                destination = new MealEntity
                {
                    Id    = source.Id,
                    Price = source.Price
                };
                destination.Id = source.Id;
                destination.FoodEntityMealEntities = new List <FoodEntityMealEntities>();
                foreach (var food in source.Foods)
                {
                    var dbFoodMealEntity = dbContext.Meal.FirstOrDefault(m => m.Id == source.Id).FoodEntityMealEntities.SingleOrDefault(fm => fm.FoodEntityId == food.Id);
                    if (dbFoodMealEntity == null)
                    {
                        destination.FoodEntityMealEntities.Add(new FoodEntityMealEntities
                        {
                            FoodEntity   = _mapper.Map <FoodEntity>(food),
                            FoodEntityId = food.Id,
                            MealEntityId = source.Id,
                            MealEntity   = destination
                        });
                    }
                    else
                    {
                        destination.FoodEntityMealEntities.Add(dbFoodMealEntity);
                    }
                }

                return(destination);
            }
        }
        public RecipeEntity Convert(Recipe source, RecipeEntity destination, ResolutionContext context)
        {
            destination = new RecipeEntity
            {
                Id                       = source.Id,
                MainCourse               = _mapper.Map <FoodEntity>(source.MainCourse),
                MainCourseId             = source.MainCourse.Id,
                RestaurantId             = source.Restaurant.Id,
                FoodEntityRecipeEntities = new List <FoodEntityRecipeEntity>()
            };
            foreach (var food in source.SideDish)
            {
                using (var dbcontext = _factory.Create())
                {
                    var fre = dbcontext.Recipe.FirstOrDefault(r => r.Id == source.Id).FoodEntityRecipeEntities.SingleOrDefault(i => i.FoodEntityId == food.Id);
                    if (fre == null)
                    {
                        destination.FoodEntityRecipeEntities.Add(new FoodEntityRecipeEntity
                        {
                            FoodEntity      = _mapper.Map <FoodEntity>(food),
                            FoodEntityId    = food.Id,
                            RecipeEntity    = destination,
                            RecepieEntityId = source.Id
                        });
                    }
                    else
                    {
                        destination.FoodEntityRecipeEntities.Add(fre);
                    }
                }
            }

            return(destination);
        }
Exemple #7
0
        public Either <Error, PagingResult <Payment> > Query(PaymentQueryModel queryModel)
        {
            try
            {
                if (queryModel == null)
                {
                    return(new Left <Error, PagingResult <Payment> >(new ArgumentNotSet(nameof(queryModel))));
                }

                using (var context = _factory.Create())
                {
                    var query = context.Payment.AsQueryable();

                    if (queryModel.Id.HasValue)
                    {
                        query = query.Where(x => x.Id == queryModel.Id);
                    }

                    var total = query.Count();

                    query = query
                            .Skip((queryModel.Page - 1) * queryModel.Size)
                            .Take(queryModel.Size);

                    var recepieEntities = query.ToList();
                    var recepies        = _mapper.Map <IList <Payment> >(recepieEntities).ToList();
                    return(new Right <Error, PagingResult <Payment> >(new PagingResult <Payment>(recepies, total)));
                }
            }
            catch (Exception ex)
            {
                return(new Left <Error, PagingResult <Payment> >(new UnknownError(ex.ToString())));
            }
        }
Exemple #8
0
        public Either <Error, PagingResult <CustomerAliases> > Query(CustomerAliasQueryModel queryModel)
        {
            try
            {
                if (queryModel == null)
                {
                    return(new Left <Error, PagingResult <CustomerAliases> >(new ArgumentNotSet(nameof(queryModel))));
                }

                using (var context = _factory.Create())
                {
                    var query = context.CustomerAlias.AsQueryable();

                    if (queryModel.Id != null)
                    {
                        query = query.Where(x => x.Id == queryModel.Id.Value);
                    }

                    var size = queryModel.Size <= QueryConstants.MaxElements ? queryModel.Size : QueryConstants.MaxElements;

                    var total = query.Count();
                    query = query
                            .Skip((queryModel.Page - 1) * size)
                            .Take(size);

                    var results = query.ToList();
                    var mapped  = _mapper.Map <IList <CustomerAliases> >(results).ToList();
                    return(new Right <Error, PagingResult <CustomerAliases> >(new PagingResult <CustomerAliases>(mapped, total)));
                }
            }
            catch (Exception ex)
            {
                return(new Left <Error, PagingResult <CustomerAliases> >(new UnknownError(ex.ToString())));
            }
        }
        protected override void InitializeStorage(IFoodOrderingContextFactory factory, int count)
        {
            using (var context = factory.Create())
            {
                var locations = Enumerable.Range(1, count + 6)
                                .Select(x => new LocationEntity()
                {
                    Id   = x,
                    Name = $"Name {x}",
                });
                context.Location.AddRange(locations);

                var roles = Enumerable.Range(1, count + 6)
                            .Select(x => new RoleEntity()
                {
                    Id   = x,
                    Name = $"Name {x}",
                });
                context.Role.AddRange(roles);

                var customers = Enumerable.Range(1, count)
                                .Select(x => new CustomerEntity()
                {
                    Id           = x,
                    Balance      = x,
                    GoogleUserId = (1000 + x).ToString(),
                    LocationId   = x,
                    Name         = $"Name {x}",
                    RoleId       = x
                });
                context.Customer.AddRange(customers);
                context.SaveChanges();
            }
        }
        protected override void InitializeStorage(IFoodOrderingContextFactory factory, int count)
        {
            using (var context = factory.Create())
            {
                var restaurant = new RestaurantEntity()
                {
                    Name = "testRestaurant"
                };

                var insertedRestauran = context.Restaurant.Add(restaurant).Entity;
                var dailyMenu         = new DailyMenuEntity()
                {
                    RestaurantId = insertedRestauran.Id
                };

                var foods = Enumerable.Range(1, count).Select(x => new FoodEntity()
                {
                    Id           = x,
                    Name         = $"Name {x}",
                    RestaurantId = insertedRestauran.Id
                });

                context.Food.AddRange(foods);
                context.SaveChanges();
            }
        }
        protected override void InitializeStorage(IFoodOrderingContextFactory factory, int count)
        {
            using (var context = factory.Create())
            {
                var dailyMenus = Enumerable.Range(1, count).Select(x => new DailyMenuEntity
                {
                    Id           = x,
                    RestaurantId = x
                });
                context.DailyMenu.AddRange(dailyMenus);

                var restaurant = Enumerable.Range(1, count + 6).Select(x => new RestaurantEntity
                {
                    Id   = x,
                    Name = $"Name {x}"
                });
                context.Restaurant.AddRange(restaurant);

                var food = Enumerable.Range(1, count + 6).Select(x => new FoodEntity
                {
                    Id           = x,
                    Name         = $"Name {x}",
                    Price        = x,
                    Description  = $"Description {x}",
                    RestaurantId = x
                });
                context.Food.AddRange(food);
                context.SaveChanges();
            }
        }
Exemple #12
0
        public Either <Error, string> GetRole(string googleId)
        {
            try
            {
                using (var context = _factory.Create())
                {
                    var customer = context.Customer.FirstOrDefault(x => x.GoogleUserId == googleId);
                    if (customer == null)
                    {
                        return(new Left <Error, string>(new RecordNotFound($"Record with GoogleUserId='{googleId}' is not found.")));
                    }

                    return(new Right <Error, string>(customer.Role != null ? customer.Role.Name : string.Empty));
                }
            }
            catch (Exception ex)
            {
                return(new Left <Error, string>(new UnknownError(ex.ToString())));
            }
        }
        protected override void InitializeStorage(IFoodOrderingContextFactory factory, int count)
        {
            using (var context = factory.Create())
            {
                var locations = Enumerable.Range(1, count).Select(x => new LocationEntity()
                {
                    Id      = x,
                    Address = $"Address {x}",
                    Name    = $"Name {x}"
                });
                context.Location.AddRange(locations);

                var customerAlias = Enumerable.Range(1, count).Select(x => new CustomerAliasesEntities
                {
                    Id           = x,
                    Alias        = $"Alias {x}",
                    CustomerId   = x,
                    RestaurantId = x
                });
                context.CustomerAlias.AddRange(customerAlias);

                var dailyMenus = Enumerable.Range(1, count).Select(x => new DailyMenuEntity
                {
                    Id           = x,
                    RestaurantId = x
                });
                context.DailyMenu.AddRange(dailyMenus);

                var restaurant = Enumerable.Range(1, count).Select(x => new RestaurantEntity
                {
                    Id   = x,
                    Name = $"Name {x}"
                });
                context.Restaurant.AddRange(restaurant);

                var roles = Enumerable.Range(1, count + 6).Select(x => new RoleEntity
                {
                    Id   = x,
                    Name = $"role name {x}"
                });
                context.Role.AddRange(roles);

                var customers = Enumerable.Range(1, count).Select(x => new CustomerEntity
                {
                    Id         = x,
                    Name       = $"Name {x}",
                    LocationId = x,
                    RoleId     = x
                });
                context.Customer.AddRange(customers);
                context.SaveChanges();
            }
        }
Exemple #14
0
        protected override void InitializeStorage(IFoodOrderingContextFactory factory, int count)
        {
            using (var context = factory.Create())
            {
                var location = new LocationEntity
                {
                    Id      = 1,
                    Name    = "location name",
                    Address = "Address"
                };

                context.Location.Add(location);

                var role = new RoleEntity
                {
                    Id   = 1,
                    Name = "role name",
                };

                context.Role.Add(role);

                var customers = Enumerable.Range(1, count + 6).Select(x => new CustomerEntity
                {
                    Id           = x,
                    Name         = "Customer name ",
                    GoogleUserId = "GoogleUserId",
                    Balance      = 99.99m,
                    LocationId   = 1,
                    RoleId       = 1
                });
                context.Customer.AddRange(customers);

                var meals = Enumerable.Range(1, count + 6).Select(x => new MealEntity
                {
                    Id    = x,
                    Price = 3.2m * x
                });
                context.Meal.AddRange(meals);

                var orders = Enumerable.Range(1, count).Select(x => new OrderEntity
                {
                    Id         = x,
                    CustomerId = x,
                    Date       = _dateTime.Now().AddHours(x),
                    MealId     = x,
                    Note       = "note ",
                    Price      = 10.5m * x
                });
                context.Order.AddRange(orders);

                context.SaveChanges();
            }
        }
Exemple #15
0
        public Either <Error, int> Insert(RestaurantInsertModel entity)
        {
            try
            {
                using (var context = _factory.Create())
                {
                    var restaurantEntity = new RestaurantEntity()
                    {
                        Name = entity.Name,
                    };

                    var addedEntity = context.Restaurant.Add(restaurantEntity).Entity;
                    context.SaveChanges();
                    return(new Right <Error, int>(addedEntity.Id));
                }
            }
            catch (Exception ex)
            {
                return(new Left <Error, int>(new UnknownError(ex.ToString())));
            }
        }
Exemple #16
0
        public Either <Error, int> Insert(DailyMenuInsertModel entity)
        {
            try
            {
                using (var context = _factory.Create())
                {
                    var dailyMenuEntity = new DailyMenuEntity
                    {
                        RestaurantId = entity.RestaurantId,
                        Foods        = entity.Foods.Select(food => context.Food.Find(food.Id)).ToList()
                    };

                    var addedEntity = context.DailyMenu.Add(dailyMenuEntity).Entity;
                    context.SaveChanges();
                    return(new Right <Error, int>(addedEntity.Id));
                }
            }
            catch (Exception ex)
            {
                return(new Left <Error, int>(new UnknownError(ex.ToString())));
            }
        }
Exemple #17
0
        public Either <Error, int> Insert(LocationInsertModel entity)
        {
            try
            {
                using (var context = _factory.Create())
                {
                    var locationEntity = new LocationEntity()
                    {
                        Name    = entity.Name,
                        Address = entity.Address
                    };

                    var addedEntity = context.Location.Add(locationEntity).Entity;
                    context.SaveChanges();
                    return(new Right <Error, int>(addedEntity.Id));
                }
            }
            catch (Exception ex)
            {
                return(new Left <Error, int>(new UnknownError(ex.ToString())));
            }
        }
Exemple #18
0
        public Either <Error, int> Insert(PaymentInsertModel entity)
        {
            try
            {
                using (var context = _factory.Create())
                {
                    var paymentEntity = new PaymentEntity()
                    {
                        Amount     = entity.Amount,
                        CustomerId = entity.CustomerId
                    };

                    var addedEntity = context.Payment.Add(paymentEntity).Entity;
                    context.SaveChanges();
                    return(new Right <Error, int>(addedEntity.Id));
                }
            }
            catch (Exception ex)
            {
                return(new Left <Error, int>(new UnknownError(ex.ToString())));
            }
        }
Exemple #19
0
 public Either <Error, int> Insert(MealInsertModel entity)
 {
     try
     {
         using (var context = _factory.Create())
         {
             var mealEntity = new MealEntity
             {
                 Price = entity.Price,
                 FoodEntityMealEntities = entity.Foods.Select(x => new FoodEntityMealEntities {
                     FoodEntityId = x
                 }).ToList(),
             };
             var addedEntity = context.Add(mealEntity).Entity;
             context.SaveChanges();
             return(new Right <Error, int>(addedEntity.Id));
         }
     }
     catch (Exception ex)
     {
         return(new Left <Error, int>(new UnknownError(ex.ToString())));
     }
 }
        protected override void InitializeStorage(IFoodOrderingContextFactory factory, int count)
        {
            using (var context = factory.Create())
            {
                var locations = Enumerable.Range(1, count).Select(x => new RestaurantEntity()
                {
                    Id   = x,
                    Name = $"Name {x}"
                });

                context.Restaurant.AddRange(locations);
                context.SaveChanges();
            }
        }
Exemple #21
0
        public Either <Error, int> Insert(CustomerAliasInsertModel entity)
        {
            try
            {
                using (var context = _factory.Create())
                {
                    var customerAliases = new CustomerAliasesEntities()
                    {
                        Alias        = entity.Alias,
                        CustomerId   = entity.CustomerId,
                        RestaurantId = entity.RestaurantId
                    };

                    var addedEntity = context.CustomerAlias.Add(customerAliases).Entity;
                    context.SaveChanges();
                    return(new Right <Error, int>(addedEntity.Id));
                }
            }
            catch (Exception ex)
            {
                return(new Left <Error, int>(new UnknownError(ex.ToString())));
            }
        }
        public Either <Error, PagingResult <Order> > GetAllOrdersForRestaurant(int restaruntId, int page, int size)
        {
            try
            {
                using (var context = _factory.Create())
                {
                    var restarurantMeals = context.Meal.SelectMany(x => x.FoodEntityMealEntities.Where(a => a.FoodEntity.RestaurantId == restaruntId)
                                                                   .Select(a => a.MealEntityId));

                    var query   = context.Order.Where(o => restarurantMeals.Contains(o.MealId));
                    var total   = query.Count();
                    var results = query.Skip((page - 1) * size)
                                  .Take(size);

                    var mapped = _mapper.Map <IList <Order> >(results).ToList();
                    return(new Right <Error, PagingResult <Order> >(new PagingResult <Order>(mapped, total)));
                }
            }
            catch (Exception ex)
            {
                return(new Left <Error, PagingResult <Order> >(new UnknownError(ex.ToString())));
            }
        }
        protected override void InitializeStorage(IFoodOrderingContextFactory factory, int count)
        {
            using (var context = factory.Create())
            {
                context.Restaurant.Add(new RestaurantEntity()
                {
                    Id   = 1,
                    Name = "Test restaurant"
                });

                var foods = Enumerable.Range(1, count).Select(x => new FoodEntity()
                {
                    Id           = x,
                    Name         = $"Name {x}",
                    Description  = $"Description {x}",
                    Price        = x,
                    Type         = FoodType.MAIN_COURSE,
                    RestaurantId = 1
                });

                context.Food.AddRange(foods);

                var meals = Enumerable.Range(1, count).Select(x => new MealEntity
                {
                    Id    = x,
                    Price = x,
                    FoodEntityMealEntities = new List <FoodEntityMealEntities>
                    {
                        new FoodEntityMealEntities {
                            FoodEntityId = x
                        }
                    }
                });

                context.Meal.AddRange(meals);
                context.SaveChanges();
            }
        }
        public Either <Error, PagingResult <Food> > Query(FoodQueryModel queryModel)
        {
            try
            {
                if (queryModel == null)
                {
                    return(new Left <Error, PagingResult <Food> >(new ArgumentNotSet(nameof(queryModel))));
                }

                using (var context = _factory.Create())
                {
                    var query = context.Food.AsQueryable();

                    if (queryModel.Id != null)
                    {
                        query = query.Where(x => x.Id == queryModel.Id.Value);
                    }

                    if (queryModel.RestaurantId != null)
                    {
                        query = query.Where(x => x.RestaurantId == queryModel.RestaurantId.Value);
                    }

                    var total = query.Count();
                    query = query
                            .Skip((queryModel.Page - 1) * queryModel.Size)
                            .Take(queryModel.Size);

                    var results = query.ToList();
                    var mapped  = _mapper.Map <IList <Food> >(results).ToList();
                    return(new Right <Error, PagingResult <Food> >(new PagingResult <Food>(mapped, total)));
                }
            }
            catch (Exception ex)
            {
                return(new Left <Error, PagingResult <Food> >(new UnknownError(ex.ToString())));
            }
        }
Exemple #25
0
        public FoodEntity Convert(Food source, FoodEntity destination, ResolutionContext context)
        {
            using (var dbContext = _factory.Create())
            {
                destination = new FoodEntity
                {
                    Id                       = source.Id,
                    Name                     = source.Name,
                    Type                     = source.Type,
                    Price                    = source.Price,
                    Description              = source.Description,
                    IsInactive               = source.IsInactive,
                    RestaurantId             = source.RestaurantId,
                    FoodEntityMealEntity     = new List <FoodEntityMealEntities>(),
                    FoodEntityRecipeEntities = new List <FoodEntityRecipeEntity>()
                };
                destination.Restaurant               = dbContext.Restaurant.Find(destination.RestaurantId);
                destination.FoodEntityMealEntity     = dbContext.Food.Where(fme => fme.Id == source.Id).SelectMany(x => x.FoodEntityMealEntity).ToList();
                destination.FoodEntityRecipeEntities = dbContext.Recipe.Where(fre => fre.Id == source.Id).SelectMany(x => x.FoodEntityRecipeEntities).ToList();

                return(destination);
            }
        }
        protected override void InitializeStorage(IFoodOrderingContextFactory factory, int count)
        {
            using (var context = factory.Create())
            {
                context.Role.Add(new RoleEntity()
                {
                    Id   = 1,
                    Name = "Test Role"
                });

                context.Location.Add(new LocationEntity()
                {
                    Id   = 1,
                    Name = "Test location"
                });

                var customers = Enumerable.Range(1, count + 6).Select(x => new CustomerEntity()
                {
                    Id         = x,
                    Name       = $"Name {x}",
                    LocationId = 1,
                    RoleId     = 1
                });

                context.Customer.AddRange(customers);

                var locations = Enumerable.Range(1, count).Select(x => new PaymentEntity()
                {
                    Id         = x,
                    Amount     = x,
                    CustomerId = x
                });

                context.Payment.AddRange(locations);
                context.SaveChanges();
            }
        }
        protected override void InitializeStorage(IFoodOrderingContextFactory factory, int count)
        {
            using (var context = factory.Create())
            {
                var restaurants = Enumerable.Range(1, count + 6)
                                  .Select(x => new RestaurantEntity()
                {
                    Name = "Restaurant name " + x
                });

                context.Restaurant.AddRange(restaurants);
                context.SaveChanges();

                var foods = Enumerable.Range(1, count + 6).Select(x => new FoodEntity()
                {
                    Name         = "mainFood" + x,
                    Description  = "Description" + x,
                    Price        = x * 100,
                    RestaurantId = 1
                });
                context.Food.AddRange(foods);
                context.SaveChanges();
            }
        }