Beispiel #1
0
        public async Task <IHttpActionResult> GetAllStores()
        {
            try
            {
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    var stores = ctx.Stores.Where(x => x.IsDeleted == false).Include(x => x.StoreDeliveryHours).Include(x => x.StoreRatings).ToList();

                    foreach (var store in stores)
                    {
                        store.CalculateAverageRating();
                    }
                    CustomResponse <IEnumerable <Store> > response = new CustomResponse <IEnumerable <Store> >
                    {
                        Message    = ResponseMessages.Success,
                        StatusCode = (int)HttpStatusCode.OK,
                        Result     = stores
                    };
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
        public IHttpActionResult GetSearchedStores(string search_string, string CategoryType, int ObjectPerPage = 6, int PageNumber = 0)
        {
            try
            {
                Shop          res = new Shop();
                DunkeyContext ctx = new DunkeyContext();

                if (string.IsNullOrEmpty(search_string))
                {
                    res.Store       = ctx.Stores.Where(x => x.BusinessType == CategoryType).OrderBy(x => x.BusinessName).Skip(ObjectPerPage * PageNumber).Take(ObjectPerPage).ToList();
                    res.TotalStores = ctx.Stores.Where(x => x.BusinessType == CategoryType).Count();
                }
                else
                {
                    res.Store = ctx.Stores.Where(x => x.BusinessName.StartsWith(search_string) && x.BusinessType == CategoryType).OrderBy(x => x.BusinessName).Skip(ObjectPerPage * PageNumber).Take(ObjectPerPage).ToList();
                }

                CustomResponse <Shop> response = new CustomResponse <Shop>
                {
                    Message    = "Success",
                    StatusCode = (int)HttpStatusCode.OK,
                    Result     = res
                };

                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #3
0
        public static void MakeOrder(this Order order, OrderViewModel model, DunkeyContext ctx)
        {
            try
            {
                order.User_ID = model.UserId;
                foreach (var cartItem in model.Cart.CartItems)
                {
                    if (order.StoreOrders.Count == 0)
                    {
                        order.AddNewStoreOrder(cartItem, ctx);
                    }
                    else
                    {
                        var existingStoreOrder = order.StoreOrders.FirstOrDefault(x => x.Store_Id == cartItem.StoreId);

                        if (existingStoreOrder == null)
                        {
                            order.AddNewStoreOrder(cartItem, ctx);
                        }
                        else
                        {
                            existingStoreOrder.AddNewOrderItem(cartItem, ctx);
                        }
                    }
                }
                order.SetOrderDetails(model);

                order.CalculateSubTotal();
                order.CalculateTotal();
            }
            catch (Exception ex)
            {
                DunkeyDelivery.Utility.LogError(ex);
            }
        }
        public async Task <ActionResult> ResetPassword(ResetPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (DunkeyContext ctx = new DunkeyContext())
            {
                var tokens = ctx.ForgotPasswordTokens.Where(x => x.User_Id == model.UserId && x.IsDeleted == false);

                if (tokens.Count() > 0)
                {
                    foreach (var token in tokens)
                    {
                        token.IsDeleted = true;
                    }

                    ctx.Users.FirstOrDefault(x => x.Id == model.UserId).Password = model.Password;

                    ctx.SaveChanges();
                }
            }

            return(View("PasswordResetSuccess"));
        }
Beispiel #5
0
 public IHttpActionResult GetRewardPrizes(int UserID)
 {
     try
     {
         using (DunkeyContext ctx = new DunkeyContext())
         {
             RewardViewModel resp            = new RewardViewModel();
             var             RewardMilestone = ctx.RewardMilestones.Include(x => x.RewardPrize).ToList();
             //var RewardMilestone1 = ctx.RewardMilestones.Include(x => x.RewardPrize);
             resp.Rewards = RewardMilestone;
             var CurrentUser = ctx.Users.Where(x => x.Id == UserID).FirstOrDefault();
             resp.UserPoints.RewardPoints = CurrentUser.RewardPoints;
             CustomResponse <RewardViewModel> response = new CustomResponse <RewardViewModel>
             {
                 Message    = "Success",
                 StatusCode = (int)HttpStatusCode.OK,
                 Result     = resp
             };
             return(Ok(response));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
     }
 }
        public async Task <IHttpActionResult> AlcoholHomeScreen(double latitude, double longitude, int?Page = 0, int?Items = 10, string Store_Ids = "")
        {
            try
            {
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    AlcoholViewModel model = new AlcoholViewModel();
                    var      Stores        = new List <Store>();
                    string[] StoreIdsString;
                    int[]    StoreIdsInt = new int[0];
                    var      point       = DunkeyDelivery.Utility.CreatePoint(latitude, longitude);

                    if (!string.IsNullOrEmpty(Store_Ids))
                    {
                        StoreIdsString = Store_Ids.Split(',');
                        StoreIdsInt    = Array.ConvertAll(StoreIdsString, s => int.Parse(s));
                    }

                    if (StoreIdsInt.Length != 0)
                    {
                        Stores = ctx.Stores.Include(x => x.Categories).Include(x => x.Products).Include(x => x.StoreTags).Where(x => StoreIdsInt.Contains(x.Id) && x.BusinessType == Utility.Global.Constants.Alcohol && x.IsDeleted == false).OrderBy(x => x.Id).Skip(Page.Value * Items.Value).Take(Items.Value).ToList();
                    }
                    else
                    {
                        Stores = ctx.Stores.Include(x => x.Categories).Include(x => x.Products).Include(x => x.StoreTags).Where(x => x.Location.Distance(point) < DunkeyDelivery.Global.NearbyStoreRadius && x.BusinessType == Utility.Global.Constants.Alcohol && x.IsDeleted == false).OrderBy(x => x.Id).Skip(Page.Value * Items.Value).Take(Items.Value).ToList();
                    }


                    if (Stores.Count > 0)
                    {
                        foreach (var store in Stores)
                        {
                            if (store.Categories.Any(x => (x.Name.Contains("Wine") || x.Name.Contains("Liquor")) && x.ParentCategoryId == 0))
                            {
                                foreach (var cat in store.Categories)
                                {
                                    store.Categories = store.Categories.Where(x => x.IsDeleted == false && x.Store_Id == store.Id && x.ParentCategoryId == 0).ToList();

                                    foreach (var prod in cat.Products)
                                    {
                                        prod.BusinessName = store.BusinessName;
                                        cat.Products      = cat.Products.Where(x => x.IsDeleted == false && x.Category_Id == cat.Id).ToList();
                                    }
                                }
                                store.Distance = store.Location.Distance(point).Value;
                                store.CalculateAverageRating();
                                model.Stores.Add(store);
                            }
                        }
                    }
                    return(Ok(new CustomResponse <AlcoholViewModel> {
                        Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = model
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #7
0
        public async Task <IHttpActionResult> AddProduct(ProductBindingModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                using (DunkeyContext ctx = new DunkeyContext())
                {
                    var newProductModel = new Product {
                        Store_Id = model.Store_Id, Category_Id = model.Category_Id, Name = model.Name, Description = model.Description, Price = model.Price, Status = 0
                    };
                    ctx.Products.Add(newProductModel);
                    ctx.SaveChanges();
                    CustomResponse <Product> response = new CustomResponse <Product> {
                        Message = "Success", StatusCode = (int)HttpStatusCode.OK, Result = newProductModel
                    };
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #8
0
        public IHttpActionResult GetStoreProducts(short Store_id, int Page = 0, int Items = 10)
        {
            try
            {
                CategoryProductViewModel responsee = new CategoryProductViewModel();
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    var res = ctx.Products
                              .Where(x => x.Store_Id == Store_id && x.IsDeleted == false).OrderBy(x => x.Name).Skip(Page * Items).Take(Items).ToList();
                    var f = Mapper.Map <List <productslist> >(res);
                    responsee.productslist = f;

                    responsee.TotalRecords = ctx.Products.Where(x => x.Store_Id == Store_id && x.IsDeleted == false).Count();
                    CustomResponse <CategoryProductViewModel> response = new CustomResponse <CategoryProductViewModel>
                    {
                        Message    = "Success",
                        StatusCode = (int)HttpStatusCode.OK,
                        Result     = responsee
                    };
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #9
0
        public IHttpActionResult GetAlcoholStores(string search_string, string CategoryType, int Store_Id)
        {
            try
            {
                CategoryProductViewModel res = new CategoryProductViewModel();
                DunkeyContext            ctx = new DunkeyContext();

                if (string.IsNullOrEmpty(search_string))
                {
                    var productList = ctx.Products.Where(x => x.Store_Id == Store_Id && x.IsDeleted == false).ToList();
                    res.productslist = Mapper.Map <List <productslist> >(productList);
                    //res.TotalRecords = ctx.Products.Where(x => x.Store.BusinessType == CategoryType).Count();
                }
                else
                {
                    var productList = ctx.Products.Where(x => x.Name.Contains(search_string) && x.Store_Id == Store_Id && x.IsDeleted == false).ToList();

                    res.productslist = Mapper.Map <List <productslist> >(productList);
                }

                CustomResponse <CategoryProductViewModel> response = new CustomResponse <CategoryProductViewModel>
                {
                    Message    = "Success",
                    StatusCode = (int)HttpStatusCode.OK,
                    Result     = res
                };

                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #10
0
 public async Task <IHttpActionResult> GetContentByType(int Type)
 {
     try
     {
         using (DunkeyContext ctx = new DunkeyContext())
         {
             var content = ctx.Content.FirstOrDefault(x => x.Type == Type);
             if (content != null)
             {
                 return(Ok(new CustomResponse <Content> {
                     Message = ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = content
                 }));
             }
             return(Content(HttpStatusCode.OK, new CustomResponse <Error>
             {
                 Message = "Not Found",
                 StatusCode = (int)HttpStatusCode.NotFound,
                 Result = new Error {
                     ErrorMessage = "Record not found."
                 }
             }));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
     }
 }
Beispiel #11
0
 public async Task <IHttpActionResult> GetSubCategoriesByCatId(int CatId)
 {
     try
     {
         using (DunkeyContext ctx = new DunkeyContext())
         {
             var categories = ctx.Categories.Where(x => x.ParentCategoryId == CatId && x.IsDeleted == false).OrderBy(x => x.Name).ToList();
             categories.Insert(0, new Category {
                 Name = "All", Id = CatId
             });
             CustomResponse <Models.Admin.CategoriesViewModel> response = new CustomResponse <Models.Admin.CategoriesViewModel>
             {
                 Message    = ResponseMessages.Success,
                 StatusCode = (int)HttpStatusCode.OK,
                 Result     = new Models.Admin.CategoriesViewModel {
                     Categories = categories
                 }
             };
             return(Ok(response));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
     }
 }
Beispiel #12
0
 public async Task <IHttpActionResult> DeleteEntity(int Id)
 {
     try
     {
         using (DunkeyContext ctx = new DunkeyContext())
         {
             var Blog = ctx.BlogPosts.FirstOrDefault(x => x.Id == Id);
             if (Blog != null)
             {
                 Blog.is_deleted = 1;
                 ctx.SaveChanges();
                 return(Ok(new CustomResponse <string> {
                     Message = ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
                 }));
             }
             return(Content(HttpStatusCode.OK, new CustomResponse <Error>
             {
                 Message = "Not Found",
                 StatusCode = (int)HttpStatusCode.NotFound,
                 Result = new Error {
                     ErrorMessage = "Record not found."
                 }
             }));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
     }
 }
Beispiel #13
0
 public IHttpActionResult GetPrizes(int?Page = 0, int?Items = 0)
 {
     try
     {
         using (DunkeyContext ctx = new DunkeyContext())
         {
             double  TotalPrize = 0;
             Rewards resp       = new Rewards();
             var     Rewards    = ctx.RewardMilestones.Include(x => x.RewardPrize).ToList(); // bug asi
             if (Rewards == null)
             {
                 return(Ok(new CustomResponse <Error> {
                     Message = Global.ResponseMessages.NotFound, StatusCode = (int)HttpStatusCode.NotFound, Result = new Error {
                         ErrorMessage = "Reward list not found."
                     }
                 }));
             }
             resp.RewardsList = Rewards;
             CustomResponse <Rewards> response = new CustomResponse <Rewards>
             {
                 Message    = "Success",
                 StatusCode = (int)HttpStatusCode.OK,
                 Result     = resp
             };
             return(Ok(response));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
     }
 }
Beispiel #14
0
        public async Task <IHttpActionResult> GetEntityById(int Id)
        {
            try
            {
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    var Blog = ctx.BlogPosts.FirstOrDefault(x => x.Id == Id && x.is_deleted == 0);
                    if (Blog == null)
                    {
                        return(Ok(new CustomResponse <Error> {
                            Message = ResponseMessages.NotFound, StatusCode = (int)HttpStatusCode.NotFound, Result = new Error {
                                ErrorMessage = "Record not found"
                            }
                        }));
                    }

                    return(Ok(new CustomResponse <DAL.BlogPosts> {
                        Message = ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = Blog
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #15
0
        public async Task <IHttpActionResult> SearchBlogs(string BlogTitle, string CategoryType, string DateOfPosting)
        {
            try
            {
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    string conditions = string.Empty;

                    if (!String.IsNullOrEmpty(BlogTitle))
                    {
                        conditions += "AND BlogPosts.Title LIKE '%" + BlogTitle + "%'";
                    }

                    if (!String.IsNullOrEmpty(CategoryType))
                    {
                        conditions += "AND CategoryType='" + CategoryType + "'";
                    }

                    if (DateOfPosting != null)
                    {
                        conditions += "OR DateOfPosting='" + Convert.ToDateTime(DateOfPosting) + "'";
                    }



                    #region query
                    var query = @"select 
BlogPosts.Id,
BlogPosts.Title,
BlogPosts.CategoryType,
BlogPosts.DateOfPosting,
BlogPosts.Description,
BlogPosts.ImageUrl,
BlogPosts.is_popular,
BlogPosts.Title,
BlogPosts.Admin_ID,
BlogPosts.is_deleted,
Admins.Email
 from BlogPosts
 LEFT JOIN Admins
ON Admins.Id=BlogPosts.Admin_ID
Where BlogPosts.is_deleted=0 " + conditions + "";

                    #endregion


                    var Blogs = ctx.Database.SqlQuery <SearchBlogViewModel>(query).ToList();

                    return(Ok(new CustomResponse <SearchBlogListViewModel> {
                        Message = ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = new SearchBlogListViewModel {
                            BlogList = Blogs
                        }
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
        public IHttpActionResult GetStoreById(short Id)
        {
            try
            {
                DunkeyContext ctx = new DunkeyContext();
                var           res = ctx.Stores.Where(x => x.Id == Id && x.IsDeleted == false).Include("StoreDeliveryHours").Include(x => x.StoreRatings).First();
                if (res != null)
                {
                    res.CalculateAverageRating();
                }
                var businessTypeTax = ctx.BusinessTypeTax.FirstOrDefault(x => x.BusinessType.Equals(res.BusinessType));

                if (businessTypeTax != null)
                {
                    res.BusinessTypeTax = businessTypeTax.Tax;
                }

                CustomResponse <Store> response = new CustomResponse <Store>
                {
                    Message    = "Success",
                    StatusCode = (int)HttpStatusCode.OK,
                    Result     = res
                };
                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
        public IHttpActionResult SearchByType(string Type, int items, int Page)
        {
            try
            {
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    var res = ctx.Stores.Include("StoreTags").Include(x => x.StoreRatings).Where(x => x.BusinessType == Type && x.IsDeleted == false).OrderBy(x => x.Id).Skip(items * Page).Take(items).ToList();
                    foreach (var storeRating in res)
                    {
                        storeRating.CalculateAverageRating();
                    }
                    res = res.OrderByDescending(x => x.AverageRating).ToList();
                    //var businessTypeTax = ctx.BusinessTypeTax.FirstOrDefault(x => x.BusinessType.Equals(res.BusinessType));

                    //if (businessTypeTax != null)
                    //    res.BusinessTypeTax = businessTypeTax.Tax;

                    var TotalStores = ctx.Stores.Where(x => x.BusinessType == Type).Count();

                    CustomResponse <Shop> response = new CustomResponse <Shop>
                    {
                        Message    = "Success",
                        StatusCode = (int)HttpStatusCode.OK,
                        Result     = new Shop {
                            Store = res, TotalStores = TotalStores
                        }
                    };
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #18
0
        public IHttpActionResult GetMedicationNames(short Store_Id, string search_string)
        {
            try
            {
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    var         response      = ctx.Products.Where(x => x.Name.Contains(search_string) && x.Store_Id == Store_Id && x.IsDeleted == false).ToList();
                    var         f             = Mapper.Map <List <MedicationNames> >(response);
                    Medications responseModel = new Medications {
                        medications = f
                    };


                    CustomResponse <Medications> res = new CustomResponse <Medications>
                    {
                        Message    = "Success",
                        StatusCode = (int)HttpStatusCode.OK,
                        Result     = responseModel
                    };
                    return(Ok(res));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #19
0
        public async Task <IHttpActionResult> Register(DriverBindingModel model)
        {
            model.Role = 0;
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }



                using (DunkeyContext ctx = new DunkeyContext())
                {
                    if (ctx.Drivers.Any(x => x.Email == model.Email))
                    {
                        return(Content(HttpStatusCode.OK, new CustomResponse <Error>
                        {
                            Message = "Conflict",
                            StatusCode = (int)HttpStatusCode.Conflict,
                            Result = new Error {
                                ErrorMessage = "Driver with email already exists"
                            }
                        }));
                        //return BadRequest("User with the same email already exists.");

                        //return Request.CreateResponse(HttpStatusCode.OK, new Error { ErrorCode = "400 Conflict", Message = "User with email already exist"});
                    }
                    else
                    {
                        Driver driverModel = new Driver
                        {
                            FullName    = model.FullName,
                            Email       = model.Email,
                            Phone       = model.Phone,
                            City        = model.City,
                            VehicleType = model.VehicleType,
                            HearFrom    = model.HearFrom
                        };

                        ctx.Drivers.Add(driverModel);
                        ctx.SaveChanges();
                        using (DriverViewModel driverViewModel = new DriverViewModel(driverModel))
                        {
                            //driverViewModel.Token = await Utility.GenerateToken(driverModel.Email, driverModel.Password, Request);
                            CustomResponse <DriverViewModel> response = new CustomResponse <DriverViewModel> {
                                Message = "Success", StatusCode = (int)HttpStatusCode.OK, Result = driverViewModel
                            };
                            return(Ok(response));
                            //return Request.CreateResponse(HttpStatusCode.OK, response);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #20
0
        public async Task <IHttpActionResult> GetContentEntities(Content BindingModel)
        {
            try
            {
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    var content = ctx.Content.FirstOrDefault(x => x.Type == BindingModel.Type);
                    if (BindingModel.Id == 0)
                    {
                        return(Ok(new CustomResponse <Content> {
                            Message = ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = content
                        }));
                    }
                    if (content != null)
                    {
                        content.VideoUrl    = BindingModel.VideoUrl;
                        content.Description = BindingModel.Description;
                        content.Heading     = BindingModel.Heading;
                        content.ImageUrl    = BindingModel.ImageUrl;
                        content.Title       = BindingModel.Title;
                        ctx.SaveChanges();
                        return(Ok(new CustomResponse <Content> {
                            Message = ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = content
                        }));
                    }
                    else
                    {
                        Content NewContent = new Content
                        {
                            Description = BindingModel.Description,
                            VideoUrl    = BindingModel.VideoUrl,
                            Type        = (int)DunkeyDelivery.Content.Types.AboutUs,
                            Heading     = BindingModel.Heading,
                            Title       = BindingModel.Title,
                            ImageUrl    = BindingModel.ImageUrl
                        };

                        ctx.Content.Add(NewContent);
                        ctx.SaveChanges();
                        return(Ok(new CustomResponse <Content> {
                            Message = ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = NewContent
                        }));
                    }
                    return(Content(HttpStatusCode.OK, new CustomResponse <Error>
                    {
                        Message = "Not Found",
                        StatusCode = (int)HttpStatusCode.NotFound,
                        Result = new Error {
                            ErrorMessage = "Record not found."
                        }
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #21
0
        public IHttpActionResult GetBlogPosts(int Page = 0, int Items = 6)
        {
            try
            {
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    BlogPostListViewModel model = new BlogPostListViewModel();
                    model.BlogPosts = ctx.BlogPosts.Include(c => c.Admin).OrderBy(x => x.Title).Skip(Page * Items).Take(Items).ToList();

                    foreach (var post in model.BlogPosts)
                    {
                        post.TotalComments = ctx.BlogComments.Count(x => x.Post_Id == post.Id);
                    }


                    // popular categories
                    var query             = "select CategoryType, COUNT(CategoryType)AS TotalCount from BlogPosts GROUP BY BlogPosts.CategoryType  ORDER BY TotalCount DESC OFFSET 0 ROWS  FETCH NEXT 3 ROWS ONLY";
                    var popularCategories = ctx.Database.SqlQuery <popularCategories>(query).ToList();
                    model.popularCategories = popularCategories;

                    CustomResponse <BlogPostListViewModel> response = new CustomResponse <BlogPostListViewModel>
                    {
                        Message    = DunkeyDelivery.Global.SuccessMessage,
                        StatusCode = (int)HttpStatusCode.OK,
                        Result     = model
                    };

                    return(Ok(response));

                    //return Ok(new CustomResponse<BlogPostListViewModel>
                    //{
                    //    Message = "Success",
                    //    StatusCode = (int)HttpStatusCode.OK,
                    //    Result = new BlogPostListViewModel
                    //    {
                    //        BlogPosts = ctx.BlogPosts.Include(c => c.User).Include(c => c.BlogComments).Select(x => new BlogPosts
                    //        {
                    //            TotalComments = x.BlogComments.Count,
                    //            Id = x.Id,
                    //            Title= x.Title,
                    //            is_popular=x.is_popular,
                    //            ImageUrl= x.ImageUrl,
                    //            User= x.User,
                    //            Description=x.Description,
                    //            DateOfPosting= x.DateOfPosting,
                    //            CategoryType= x.CategoryType
                    //        }).ToList()
                    //    }
                    //});
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #22
0
        public async Task <IHttpActionResult> Register(RideBindingModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }



                using (DunkeyContext ctx = new DunkeyContext())
                {
                    if (ctx.Rider.Any(x => x.Email == model.Email))
                    {
                        return(Content(HttpStatusCode.OK, new CustomResponse <Error>
                        {
                            Message = "Conflict",
                            StatusCode = (int)HttpStatusCode.Conflict,
                            Result = new Error {
                                ErrorMessage = "Rider with email already exists"
                            }
                        }));
                    }
                    else
                    {
                        Rider rideModel = new Rider()
                        {
                            FullName     = model.FullName,
                            BusinessName = model.BusinessName,
                            Email        = model.Email,
                            BusinessType = model.BusinessType,
                            Status       = (int)Global.StatusCode.NotVerified,
                            Phone        = model.Phone,
                            ZipCode      = model.ZipCode
                        };

                        ctx.Rider.Add(rideModel);
                        ctx.SaveChanges();
                        using (RideViewModel rideViewModel = new RideViewModel(rideModel))
                        {
                            //userViewModel.Token = await Utility.GenerateToken(userModel.Email, userModel.Password, Request);
                            CustomResponse <RideViewModel> response = new CustomResponse <RideViewModel> {
                                Message = "Success", StatusCode = (int)HttpStatusCode.OK, Result = rideViewModel
                            };
                            return(Ok(response));
                            //return Request.CreateResponse(HttpStatusCode.OK, response);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #23
0
        public IHttpActionResult GetRedeemedPrize(int UserID)
        {
            try
            {
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    double     TotalPrize  = 0;
                    UserReward resp        = new UserReward();
                    var        UserRewards = ctx.UserRewards.Include("RewardMilestones").Include("User").Where(x => x.User_Id == UserID && x.is_deleted == 0).ToList();
                    if (UserRewards == null)
                    {
                        return(Ok(new CustomResponse <Error> {
                            Message = Global.ResponseMessages.BadRequest, StatusCode = (int)HttpStatusCode.BadRequest, Result = new Error {
                                ErrorMessage = "No redeemed prize found."
                            }
                        }));
                    }

                    foreach (var Reward in UserRewards)
                    {
                        if (Reward.RewardMilestones.RewardPrize_Id.HasValue)
                        {
                            return(Ok(new CustomResponse <Error> {
                                Message = Global.ResponseMessages.BadRequest, StatusCode = (int)HttpStatusCode.BadRequest, Result = new Error {
                                    ErrorMessage = "Prize cannot be redeemed."
                                }
                            }));
                        }
                        else
                        {
                            TotalPrize = +Reward.RewardMilestones.AmountAward;
                        }
                    }
                    resp.RewardAmount = TotalPrize;
                    CustomResponse <UserReward> response = new CustomResponse <UserReward>
                    {
                        Message    = "Success",
                        StatusCode = (int)HttpStatusCode.OK,
                        Result     = resp
                    };
                    return(Ok(response));

                    //CustomResponse<RewardViewModel> response = new CustomResponse<RewardViewModel>
                    //{
                    //    Message = "Success",
                    //    StatusCode = (int)HttpStatusCode.OK,
                    //    Result = resp
                    //};
                    //return Ok(response);
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #24
0
        public static void SetOrderDetails(this Order order, OrderViewModel model)
        {
            try
            {
                order.OrderNo           = Guid.NewGuid().ToString("N").ToUpper();
                order.OrderDateTime     = DateTime.Now;
                order.Status            = (int)OrderStatuses.Initiated;
                order.DeliveryTime_From = model.DeliveryDateTime_From;
                order.DeliveryTime_To   = model.DeliveryDateTime_To;
                order.PaymentMethod     = model.PaymentMethodType;
                order.User_ID           = model.UserId;
                if (string.IsNullOrEmpty(order.DeliveryDetails_Address) && string.IsNullOrEmpty(order.DeliveryDetails_Phone))
                {
                    var UserAddress = new UserAddress();
                    using (DunkeyContext ctx = new DunkeyContext())
                    {
                        //Set Delivery Details


                        UserAddress = ctx.UserAddresses.Include(x => x.User).FirstOrDefault(x => x.User_ID == order.User_ID && x.IsPrimary == true && x.IsDeleted == false);
                        if (UserAddress == null)
                        {
                            UserAddress = ctx.UserAddresses.Include(x => x.User).Where(x => x.User_ID == order.User_ID && x.IsDeleted == false).OrderByDescending(x => x.Id).FirstOrDefault();
                        }
                    }


                    order.DeliveryDetails_FirstName     = UserAddress.User.FirstName;
                    order.DeliveryDetails_LastName      = UserAddress.User.LastName;
                    order.DeliveryDetails_Phone         = UserAddress.Telephone;
                    order.DeliveryDetails_ZipCode       = UserAddress.PostalCode;
                    order.DeliveryDetails_Email         = UserAddress.User.Email;
                    order.DeliveryDetails_City          = UserAddress.City;
                    order.DeliveryDetails_Address       = UserAddress.FullAddress;
                    order.DeliveryDetails_AddtionalNote = model.DeliveryDetails.AdditionalNote;
                }
                else
                {
                    order.DeliveryDetails_FirstName     = model.DeliveryDetails.FirstName;
                    order.DeliveryDetails_LastName      = model.DeliveryDetails.LastName;
                    order.DeliveryDetails_Phone         = model.DeliveryDetails.Phone;
                    order.DeliveryDetails_ZipCode       = model.DeliveryDetails.ZipCode;
                    order.DeliveryDetails_Email         = model.DeliveryDetails.Email;
                    order.DeliveryDetails_City          = model.DeliveryDetails.City;
                    order.DeliveryDetails_Address       = model.DeliveryDetails.Address;
                    order.DeliveryDetails_AddtionalNote = model.DeliveryDetails.AdditionalNote;
                }

                order.TipAmount = model.TipAmount;
            }
            catch (Exception ex)
            {
                DunkeyDelivery.Utility.LogError(ex);
            }
        }
Beispiel #25
0
        public async Task <IHttpActionResult> SubmitPharmacyRequest(PharmacyRequestBindingModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }
                else if (model.Product_Ids.Count == 0)
                {
                    return(Ok(new CustomResponse <Error> {
                        Message = Utility.Global.ResponseMessages.BadRequest, StatusCode = (int)HttpStatusCode.Forbidden, Result = new Error {
                            ErrorMessage = "Please add medicines"
                        }
                    }));
                }

                using (DunkeyContext ctx = new DunkeyContext())
                {
                    PharmacyRequest pharmModel = new PharmacyRequest
                    {
                        Delivery_Address  = model.Delivery_Address,
                        Delivery_City     = model.Delivery_City,
                        Delivery_Phone    = model.Delivery_Phone,
                        Delivery_State    = model.Delivery_State,
                        Delivery_Zip      = model.Delivery_Zip,
                        Doctor_FirstName  = model.Doctor_FirstName,
                        Doctor_LastName   = model.Doctor_LastName,
                        Doctor_Phone      = model.Doctor_Phone,
                        Gender            = model.Gender,
                        Patient_DOB       = DateTime.ParseExact(model.Patient_DOB, "dd/MM/yyyy hh:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture),
                        Patient_FirstName = model.Patient_FirstName,
                        Patient_LastName  = model.Patient_LastName,
                        CreatedDate       = DateTime.Now
                    };

                    foreach (var productId in model.Product_Ids)
                    {
                        pharmModel.PharmacyRequest_Products.Add(new PharmacyRequest_Products {
                            Product_Id = productId.Value
                        });
                    }

                    ctx.PharmacyRequest.Add(pharmModel);
                    ctx.SaveChanges();
                    return(Ok(new CustomResponse <PharmacyRequest> {
                        Message = Utility.Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #26
0
        public IHttpActionResult SearchProductByName(string search_string, int Category_id = 10)
        {
            try
            {
                Stores         Utility  = new Stores();
                List <Product> products = new List <Product>();
                var            Type     = Utility.Categories_enum(Category_id);
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    var query = "SELECT Products.* FROM Stores INNER JOIN Products ON Products.Store_id = Stores.Id";
                    if (Type == "All")
                    {
                        if (string.IsNullOrEmpty(search_string))
                        {
                        }
                        else
                        {
                            query += " WHERE Products.Name Like '%" + search_string.Trim() + "%' ";
                        }
                    }
                    else
                    {
                        query += " WHERE Stores.BusinessType='" + Type + "'";
                        if (string.IsNullOrEmpty(search_string))
                        {
                        }
                        else
                        {
                            query += " AND Products.Name Like '%" + search_string.Trim() + "%'";
                        }
                    }

                    products = ctx.Database.SqlQuery <Product>(query).ToList();

                    //var res = ctx.Products
                    //    .Where(x => x.Name.StartsWith(search_string)).ToList();
                    //ClientProductViewModel model = new ClientProductViewModel();
                    //model= Mapper.Map<ClientProductViewModel>(res);

                    CustomResponse <List <Product> > response = new CustomResponse <List <Product> >
                                                                //CustomResponse<IEnumerable<Product>> response = new CustomResponse<IEnumerable<Product>>
                    {
                        Message    = "Success",
                        StatusCode = (int)HttpStatusCode.OK,
                        Result     = products
                    };
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
        public async Task <IHttpActionResult> GetEntityById(int EntityType, int Id)
        {
            try
            {
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    switch (EntityType)
                    {
                    case (int)DunkeyEntityTypes.Product:
                        return(Ok(new CustomResponse <Product> {
                            Message = ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = ctx.Products.FirstOrDefault(x => x.Id == Id && x.IsDeleted == false)
                        }));

                    case (int)DunkeyEntityTypes.Category:
                        return(Ok(new CustomResponse <Category> {
                            Message = ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = ctx.Categories.FirstOrDefault(x => x.Id == Id && x.IsDeleted == false)
                        }));

                    case (int)DunkeyEntityTypes.Store:
                        return(Ok(new CustomResponse <Store> {
                            Message = ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = ctx.Stores.Include(x => x.StoreDeliveryHours).FirstOrDefault(x => x.Id == Id && x.IsDeleted == false)
                        }));

                    case (int)DunkeyEntityTypes.Package:
                        return(Ok(new CustomResponse <Package> {
                            Message = ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = ctx.Packages.FirstOrDefault(x => x.Id == Id && x.IsDeleted == false)
                        }));

                    case (int)DunkeyEntityTypes.Admin:
                        return(Ok(new CustomResponse <DAL.Admin> {
                            Message = ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = ctx.Admins.FirstOrDefault(x => x.Id == Id)
                        }));

                    case (int)DunkeyEntityTypes.Offer:
                        return(Ok(new CustomResponse <DAL.Offer> {
                            Message = ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = ctx.Offers.FirstOrDefault(x => x.Id == Id && x.IsDeleted == false)
                        }));

                    default:
                        return(Ok(new CustomResponse <Error> {
                            Message = ResponseMessages.BadRequest, StatusCode = (int)HttpStatusCode.BadRequest, Result = new Error {
                                ErrorMessage = "Invalid entity type"
                            }
                        }));
                    }
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
        public IHttpActionResult GetStoreByIdMobile(short Id, double?latitude = 0, double?longitude = 0)
        {
            try
            {
                DunkeyContext ctx      = new DunkeyContext();
                var           res      = new Store();
                var           Distance = 0.0;
                if (latitude != 0 && longitude != 0)
                {
                    var point = DunkeyDelivery.Utility.CreatePoint(latitude.Value, longitude.Value);
                    res          = ctx.Stores.Include(z => z.StoreRatings.Select(y => y.User)).Include(z => z.StoreTags).Where(x => x.Id == Id && x.IsDeleted == false).Include("StoreDeliveryHours").First();
                    res.Distance = res.Location.Distance(point).Value;
                }
                else
                {
                    res = ctx.Stores.Include(z => z.StoreRatings.Select(y => y.User)).Include(z => z.StoreTags).Where(x => x.Id == Id && x.IsDeleted == false).Include("StoreDeliveryHours").First();
                }


                var businessTypeTax = ctx.BusinessTypeTax.FirstOrDefault(x => x.BusinessType.Equals(res.BusinessType));

                if (businessTypeTax != null)
                {
                    res.BusinessTypeTax = businessTypeTax.Tax;
                }
                if (res != null)
                {
                    res.SetAverageRating();
                    res.CalculateAllTypesAverageRating();

                    foreach (var item in res.StoreRatings)
                    {
                        var query = "select User_Id, Count(Store_Id) as Count from storeratings group by User_Id";
                        var resp  = ctx.Database.SqlQuery <UserRatingCount>(query).ToList();

                        item.User.TotalReviews = resp.FirstOrDefault(x => x.User_Id == item.User.Id).Count;
                        item.User.TotalOrders  = ctx.Orders.Count(x => x.User_ID == item.User.Id);
                    }
                }
                CustomResponse <Store> response = new CustomResponse <Store>
                {
                    Message    = "Success",
                    StatusCode = (int)HttpStatusCode.OK,
                    Result     = res
                };
                return(Ok(response));
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #29
0
        public async Task <IHttpActionResult> GetProductsByCategoryId(int CatId, int UserId, int PageSize, int PageNo, string filterTypes = "", bool IsAll = false)
        {
            try
            {
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    var            userFavourites = ctx.Favourites.Where(x => x.User_ID == UserId && x.IsDeleted == false).ToList();
                    List <Product> products;
                    int            TotalCount;

                    if (IsAll)
                    {
                        var CatIds = ctx.Categories.Where(x => x.Id == CatId || x.ParentCategoryId == CatId && x.IsDeleted == false).Select(x => x.Id).ToList();
                        TotalCount = ctx.Products.Count(x => CatIds.Contains(x.Category_Id.Value) && x.IsDeleted == false);
                        products   = ctx.Products.Where(x => CatIds.Contains(x.Category_Id.Value) && x.IsDeleted == false).OrderByDescending(x => x.Id).Page(PageSize, PageNo).ToList();
                    }
                    else
                    {
                        TotalCount = ctx.Products.Count(x => x.Category_Id == CatId && x.IsDeleted == false);
                        products   = ctx.Products.Where(x => x.Category_Id == CatId && x.IsDeleted == false).OrderByDescending(x => x.Id).Page(PageSize, PageNo).ToList();
                    }

                    //foreach (var product in products)
                    //{
                    //    product.Weight = Convert.ToString(product.WeightInGrams) + " gm";

                    //    if (userFavourites.Any(x => x.Product_Id == product.Id))
                    //        product.IsFavourite = true;
                    //    else
                    //        product.IsFavourite = false;
                    //}

                    return(Ok(new CustomResponse <ProductsViewModel>
                    {
                        Message = ResponseMessages.Success,
                        StatusCode = (int)HttpStatusCode.OK,
                        Result = new ProductsViewModel
                        {
                            Count = TotalCount,
                            Products = products
                        }
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }
Beispiel #30
0
        public IHttpActionResult RedeemPrize(int UserID, int RewardID)
        {
            try
            {
                using (DunkeyContext ctx = new DunkeyContext())
                {
                    var Reward      = new RewardMilestones();
                    var CurrentUser = ctx.Users.Where(x => x.Id == UserID).FirstOrDefault();

                    Reward = ctx.RewardMilestones.Where(x => x.Id == RewardID).FirstOrDefault();

                    if (CurrentUser.RewardPoints >= Reward.PointsRequired)
                    {
                        var reward = ctx.UserRewards.Add(new UserRewards {
                            Created_Date        = DateTime.Now,
                            is_deleted          = 0,
                            User_Id             = CurrentUser.Id,
                            RewardMilestones_Id = Reward.Id
                        });
                        ctx.SaveChanges();

                        CurrentUser.RewardPoints = CurrentUser.RewardPoints - Reward.PointsRequired;
                        ctx.SaveChanges();


                        CustomResponse <UserRewards> response = new CustomResponse <UserRewards>
                        {
                            Message    = "Success",
                            StatusCode = (int)HttpStatusCode.OK,
                            Result     = reward
                        };
                        return(Ok(response));
                    }

                    return(Content(HttpStatusCode.OK, new CustomResponse <Error>
                    {
                        Message = "Forbidden",
                        StatusCode = (int)HttpStatusCode.Forbidden,
                        Result = new Error {
                            ErrorMessage = "Insufficient Points."
                        }
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(DunkeyDelivery.Utility.LogError(ex)));
            }
        }