public async Task <IHttpActionResult> GetAllStores()
        {
            try
            {
                using (SkriblContext ctx = new SkriblContext())
                {
                    var stores = ctx.Stores.Where(x => x.IsDeleted == false).ToList();

                    foreach (var store in stores)
                    {
                        store.CalculateAverageRating();
                    }
                    CustomResponse <IEnumerable <Store> > response = new CustomResponse <IEnumerable <Store> >
                    {
                        Message    = Global.ResponseMessages.Success,
                        StatusCode = (int)HttpStatusCode.OK,
                        Result     = stores
                    };
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
        public async Task <IHttpActionResult> GetNearByStores(double Latitude, double Longitude, int?Page = 0, int?Items = 6)
        {
            try
            {
                using (SkriblContext ctx = new SkriblContext())
                {
                    var point = Utility.CreatePoint(Latitude, Longitude);

                    var Store = ctx.Stores.Where(x => x.Location.Distance(point) < Global.NearbyStoreRadius && x.IsDeleted == false).OrderBy(x => x.Id).Skip(Page.Value * Items.Value).Take(Items.Value).ToList();

                    if (Store != null)
                    {
                        foreach (var item in Store)
                        {
                            item.Distance = Convert.ToDouble(String.Format("{0:0.00}", item.Location.Distance(point).Value));
                        }
                    }

                    CustomResponse <StoresViewModel> response = new CustomResponse <StoresViewModel>
                    {
                        Message    = Global.ResponseMessages.Success,
                        StatusCode = (int)HttpStatusCode.OK,
                        Result     = new StoresViewModel {
                            Stores       = Store,
                            TotalRecords = ctx.Stores.Count(x => !x.IsDeleted)
                        }
                    };
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
        public async Task <IHttpActionResult> RateApp(int UserId, short Rating, string Feedback)
        {
            try
            {
                using (SkriblContext ctx = new SkriblContext())
                {
                    var user = ctx.Users.FirstOrDefault(x => x.Id == UserId);

                    if (user != null)
                    {
                        user.AppRatings.Add(new AppRatings {
                            User_ID = user.Id, Rating = Rating, Description = Feedback
                        });
                        ctx.SaveChanges();
                        return(Ok(new CustomResponse <string> {
                            Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
                        }));
                    }
                    else
                    {
                        return(Ok(new CustomResponse <Error> {
                            Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = new Error {
                                ErrorMessage = "Invalid UserId"
                            }
                        }));
                    }
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
Esempio n. 4
0
 public async Task <IHttpActionResult> ActivateBox(int UserId, int SubscriptionId, string ActivationCode)
 {
     try
     {
         using (SkriblContext ctx = new SkriblContext())
         {
             var userSubscription = ctx.UserSubscriptions.FirstOrDefault(x => x.Id == SubscriptionId && x.User_Id == UserId && x.ActivationCode == ActivationCode && x.IsDeleted == false);
             if (userSubscription != null)
             {
                 userSubscription.Status = (int)SubscriptionStatus.Active;
                 ctx.SaveChanges();
                 return(Ok(new CustomResponse <string> {
                     Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
                 }));
             }
             else
             {
                 return(Ok(new CustomResponse <Error> {
                     Message = Global.ResponseMessages.BadRequest, StatusCode = (int)HttpStatusCode.BadRequest, Result = new Error {
                         ErrorMessage = "Invalid Subscription"
                     }
                 }));
             }
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(Utility.LogError(ex)));
     }
 }
Esempio n. 5
0
 public async Task <IHttpActionResult> UserNoticationsOnOff(int UserId, int SignInType, bool On)
 {
     try
     {
         using (SkriblContext ctx = new SkriblContext())
         {
             if (SignInType == (int)RoleTypes.User)
             {
                 var user = ctx.Users.FirstOrDefault(x => x.Id == UserId);
                 if (user != null)
                 {
                     user.IsNotificationsOn = On;
                     ctx.SaveChanges();
                 }
             }
             else
             {
                 var deliveryMan = ctx.DeliveryMen.FirstOrDefault(x => x.Id == UserId);
                 if (deliveryMan != null)
                 {
                     deliveryMan.IsNotificationsOn = On;
                     ctx.SaveChanges();
                 }
             }
         }
         return(Ok(new CustomResponse <string> {
             Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
         }));
     }
     catch (Exception ex)
     {
         return(StatusCode(Utility.LogError(ex)));
     }
 }
Esempio n. 6
0
        public async Task <IHttpActionResult> EditProfile(DelivererEditProfileBindingModel model)
        {
            try
            {
                using (SkriblContext ctx = new SkriblContext())
                {
                    var deliverer = ctx.DeliveryMen.FirstOrDefault(x => x.Id == model.Id);

                    if (deliverer != null)
                    {
                        deliverer.Address1 = model.Address1;
                        deliverer.Address2 = model.Address2;
                        deliverer.FullName = model.FullName;
                        deliverer.Phone    = model.PhoneNumber;
                        ctx.SaveChanges();

                        return(Ok(new CustomResponse <string> {
                            Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
                        }));
                    }
                    else
                    {
                        return(Ok(new CustomResponse <Error> {
                            Message = "NotFound", StatusCode = (int)HttpStatusCode.NotFound, Result = new Error {
                                ErrorMessage = "User not found"
                            }
                        }));
                    }
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
        public async Task CreateAsync(AuthenticationTokenCreateContext context)
        {
            var guid = Guid.NewGuid().ToString();


            //copy properties and set the desired lifetime of refresh token
            var refreshTokenProperties = new AuthenticationProperties(context.Ticket.Properties.Dictionary)
            {
                IssuedUtc  = context.Ticket.Properties.IssuedUtc,
                ExpiresUtc = DateTime.UtcNow.AddDays(35) //SET DATETIME to 5 Minutes // it shoild be greater then the time set for the AccessTokenExpireTimeSpan so that in case token is expired he still can send the refresh_token
                                                         //ExpiresUtc = DateTime.UtcNow.AddMonths(3)
            };

            /*CREATE A NEW TICKET WITH EXPIRATION TIME OF 5 MINUTES
             * INCLUDING THE VALUES OF THE CONTEXT TICKET: SO ALL WE
             * DO HERE IS TO ADD THE PROPERTIES IssuedUtc and
             * ExpiredUtc to the TICKET*/
            var refreshTokenTicket = new AuthenticationTicket(context.Ticket.Identity, refreshTokenProperties);

            //saving the new refreshTokenTicket to a local var of Type ConcurrentDictionary<string,AuthenticationTicket>
            // consider storing only the hash of the handle
            using (SkriblContext ctx = new SkriblContext())
            {
                ctx.RefreshTokens.Add(new RefreshTokens {
                    Token = guid
                });
                ctx.SaveChanges();
            }
            _refreshTokens.TryAdd(guid, refreshTokenTicket);
            context.SetToken(guid);
        }
Esempio n. 8
0
 public async Task <IHttpActionResult> ChangeOrderStatus(int OrderId, int Status)
 {
     try
     {
         if (Status >= (int)OrderStatuses.DelivererInProgress && Status <= (int)OrderStatuses.Completed)
         {
             using (SkriblContext ctx = new SkriblContext())
             {
                 ctx.Orders.FirstOrDefault(x => x.Id == OrderId).Status = Status;
                 ctx.SaveChanges();
                 return(Ok(new CustomResponse <string> {
                     Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
                 }));
             }
         }
         else
         {
             return(Ok(new CustomResponse <Error> {
                 Message = Global.ResponseMessages.BadRequest, StatusCode = (int)HttpStatusCode.BadRequest, Result = new Error {
                     ErrorMessage = "Invalid status code"
                 }
             }));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(Utility.LogError(ex)));
     }
 }
Esempio n. 9
0
        public async Task <IHttpActionResult> DeleteAvailibilityScheduleByDateRange(int userId, bool availibility, string StartDate)
        {
            try
            {
                DateTime startDateTime;
                DateTime.TryParse(StartDate, out startDateTime);

                using (SkriblContext ctx = new SkriblContext())
                {
                    var schedule = ctx.DeliveryManAvailibilitySchedules.FirstOrDefault(x => x.IsDeleted == false && x.IsAvailable == availibility && x.StartDate.Month == startDateTime.Month && x.StartDate.Year == startDateTime.Year);
                    if (schedule != null)
                    {
                        schedule.IsDeleted = true;
                        ctx.SaveChanges();
                        return(Ok(new CustomResponse <string> {
                            Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
                        }));
                    }
                    else
                    {
                        return(Ok(new CustomResponse <Error> {
                            Message = Global.ResponseMessages.NotFound, StatusCode = (int)HttpStatusCode.NotFound, Result = new Error {
                                ErrorMessage = "No schedule to delete"
                            }
                        }));
                    }
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
 public async Task <IHttpActionResult> AddHowItWorks(AddHowItWorksBindingModel model)
 {
     try
     {
         using (SkriblContext ctx = new SkriblContext())
         {
             var setting = ctx.Settings.FirstOrDefault();
             if (setting != null)
             {
                 setting.HowItWorksUrl         = model.Url;
                 setting.HowItWorksDescription = model.HowItWorksDescription;
             }
             else
             {
                 ctx.Settings.Add(new Settings {
                     HowItWorksUrl = model.Url, HowItWorksDescription = model.HowItWorksDescription
                 });
             }
             ctx.SaveChanges();
             return(Ok(new CustomResponse <string> {
                 Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = "Success"
             }));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(Utility.LogError(ex)));
     }
 }
        public async Task <IHttpActionResult> GetMyFavouriteOffers(int User_Id, int?Page = 0, int?Items = 10)
        {
            try
            {
                using (SkriblContext ctx = new SkriblContext())
                {
                    FavouritesViewModel returnModel = new FavouritesViewModel();

                    returnModel.Favourites   = ctx.Favourites.Where(x => x.User_ID == User_Id && x.IsFavourite && !x.IsDeleted).Include(x => x.Product).OrderByDescending(x => x.Id).Skip(Page.Value * Items.Value).Take(Items.Value).ToList();
                    returnModel.TotalRecords = ctx.Favourites.Count(x => x.User_ID == User_Id && x.IsFavourite && !x.IsDeleted);

                    CustomResponse <FavouritesViewModel> response = new CustomResponse <FavouritesViewModel>
                    {
                        Message    = Global.ResponseMessages.Success,
                        StatusCode = (int)HttpStatusCode.OK,
                        Result     = returnModel
                    };
                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
        public async Task <IHttpActionResult> GetHowItWorksVideoUrl()
        {
            try
            {
                using (SkriblContext ctx = new SkriblContext())
                {
                    var setting = ctx.Settings.FirstOrDefault();

                    if (setting != null)
                    {
                        return(Ok(new CustomResponse <HowItWorksViewModel> {
                            Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = new HowItWorksViewModel {
                                Url = setting.HowItWorksUrl, HowItWorksDescription = setting.HowItWorksDescription
                            }
                        }));
                    }
                    else
                    {
                        return(Ok(new CustomResponse <string> {
                            Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
                        }));
                    }
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
Esempio n. 13
0
        public async Task <IHttpActionResult> GetNotifications(int UserId, int SignInType)
        {
            try
            {
                using (SkriblContext ctx = new SkriblContext())
                {
                    NotificationsViewModel notificationsViewModel = new NotificationsViewModel();

                    if (SignInType == (int)RoleTypes.User)
                    {
                        notificationsViewModel.Notifications = ctx.Notifications.Where(x => x.User_ID.HasValue && x.User_ID.Value == UserId && x.Status == 0).ToList();
                    }
                    else if (SignInType == (int)RoleTypes.Deliverer)
                    {
                        notificationsViewModel.Notifications = ctx.Notifications.Where(x => x.DeliveryMan_ID.HasValue && x.DeliveryMan_ID.Value == UserId && x.Status == 0).ToList();
                    }

                    CustomResponse <NotificationsViewModel> response = new CustomResponse <NotificationsViewModel> {
                        Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = notificationsViewModel
                    };

                    return(Ok(response));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
Esempio n. 14
0
        public async Task <IHttpActionResult> MarkNotificationAsRead(int NotificationId)
        {
            try
            {
                using (SkriblContext ctx = new SkriblContext())
                {
                    var notification = ctx.Notifications.FirstOrDefault(x => x.Id == NotificationId);

                    if (notification != null)
                    {
                        notification.Status = (int)Global.NotificationStatus.Read;
                        ctx.SaveChanges();
                        CustomResponse <string> response = new CustomResponse <string> {
                            Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
                        };
                        return(Ok(response));
                    }
                    else
                    {
                        CustomResponse <Error> response = new CustomResponse <Error> {
                            Message = Global.ResponseMessages.NotFound, StatusCode = (int)HttpStatusCode.NotFound, Result = new Error {
                                ErrorMessage = "Invalid notificationid"
                            }
                        };
                        return(Ok(response));
                    }
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
Esempio n. 15
0
 public async Task <IHttpActionResult> MarkOnlineOffline(int userId, bool IsOnline)
 {
     try
     {
         using (SkriblContext ctx = new SkriblContext())
         {
             var user = ctx.DeliveryMen.FirstOrDefault(x => x.Id == userId);
             if (user != null)
             {
                 user.IsOnline = IsOnline;
                 ctx.SaveChanges();
                 return(Ok(new CustomResponse <string>
                 {
                     Message = Global.ResponseMessages.Success,
                     StatusCode = (int)HttpStatusCode.OK
                 }));
             }
             else
             {
                 return(Ok(new CustomResponse <Error> {
                     Message = Global.ResponseMessages.NotFound, StatusCode = (int)HttpStatusCode.NotFound, Result = new Error {
                         ErrorMessage = "Invalid userid"
                     }
                 }));
             }
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(Utility.LogError(ex)));
     }
 }
Esempio n. 16
0
 public async Task <IHttpActionResult> GetSettings()
 {
     try
     {
         using (SkriblContext ctx = new SkriblContext())
         {
             var settings = ctx.Settings.FirstOrDefault();
             if (settings == null)
             {
                 return(Ok(new CustomResponse <Settings>
                 {
                     Message = Global.ResponseMessages.Success,
                     StatusCode = (int)HttpStatusCode.OK,
                     Result = new Settings {
                         DeliveryFee = 0, AboutUs = "", BannerImage = "", Currency = "", FreeDeliveryThreshold = 0, HowItWorksDescription = "", HowItWorksUrl = ""
                     }
                 }));
             }
             else
             {
                 return(Ok(new CustomResponse <Settings>
                 {
                     Message = Global.ResponseMessages.Success,
                     StatusCode = (int)HttpStatusCode.OK,
                     Result = ctx.Settings.FirstOrDefault()
                 }));
             }
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(Utility.LogError(ex)));
     }
 }
Esempio n. 17
0
 public static void LoadSettings()
 {
     try
     {
         using (SkriblContext ctx = new SkriblContext())
         {
             var setting = ctx.Settings.FirstOrDefault();
             if (setting != null)
             {
                 Id                    = setting.Id;
                 DeliveryFee           = setting.DeliveryFee;
                 Currency              = setting.Currency;
                 BannerImageUrl        = setting.BannerImage;
                 FreeDeliveryThreshold = setting.FreeDeliveryThreshold;
                 HowItWorksUrl         = setting.HowItWorksUrl;
                 HowItWorksDescription = setting.HowItWorksDescription;
                 InstagramImage        = setting.InstagramImage;
             }
         }
     }
     catch (Exception ex)
     {
         Utility.LogError(ex);
     }
 }
        public async Task <ActionResult> ResetPassword(ResetPasswordViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (SkriblContext ctx = new SkriblContext())
            {
                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();
                }
                else
                {
                    return(View("Error"));
                }
            }

            return(View("PasswordResetSuccess"));
        }
Esempio n. 19
0
        public async Task <IHttpActionResult> MarkAvailibilitySchedule(int userId, bool availibility, string StartDate, string EndDate)
        {
            try
            {
                DateTime startDateTime;
                DateTime endDateTime;
                DateTime.TryParse(StartDate, out startDateTime);
                DateTime.TryParse(EndDate, out endDateTime);

                if (startDateTime == DateTime.MinValue || endDateTime == DateTime.MinValue)
                {
                    return(Ok(new CustomResponse <Error> {
                        Message = "BadRequest", StatusCode = (int)HttpStatusCode.BadRequest, Result = new Error {
                            ErrorMessage = "Invalid startdate or enddate"
                        }
                    }));
                }

                using (SkriblContext ctx = new SkriblContext())
                {
                    var deliveryMan = ctx.DeliveryMen.Include(x => x.AvailibilitySchedules).FirstOrDefault(x => x.Id == userId);
                    if (deliveryMan != null)
                    {
                        var existingSchedule = deliveryMan.AvailibilitySchedules.FirstOrDefault(x => x.StartDate.Month == startDateTime.Month && x.StartDate.Year == startDateTime.Year && x.IsAvailable == availibility && x.IsDeleted == false);
                        if (existingSchedule != null)
                        {
                            existingSchedule.StartDate = startDateTime;
                            existingSchedule.EndDate   = endDateTime;
                        }
                        else
                        {
                            deliveryMan.AvailibilitySchedules.Add(new DeliveryMan_AvailibilitySchedule {
                                IsAvailable = availibility, StartDate = startDateTime, EndDate = endDateTime
                            });
                        }

                        ctx.SaveChanges();
                        return(Ok(new CustomResponse <string> {
                            Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
                        }));
                    }
                    else
                    {
                        return(Ok(new CustomResponse <Error> {
                            Message = Global.ResponseMessages.NotFound, StatusCode = (int)HttpStatusCode.NotFound, Result = new Error {
                                ErrorMessage = "Invalid userid"
                            }
                        }));
                    }
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
Esempio n. 20
0
        public static void SetOrderItem(this Order_Items orderItem, CartItemViewModel model)
        {
            try
            {
                using (SkriblContext ctx = new SkriblContext())
                {
                    switch (model.ItemType)
                    {
                    case (int)CartItemTypes.Product:
                        orderItem.Product_Id = model.ItemId;
                        var product = ctx.Products.FirstOrDefault(x => x.Id == model.ItemId && x.IsDeleted == false);
                        orderItem.Name        = product.Name;
                        orderItem.Price       = product.Price * model.Qty;
                        orderItem.Description = product.Description;
                        product.OrderedCount  = product.OrderedCount + model.Qty;
                        ctx.SaveChanges();
                        break;

                    case (int)CartItemTypes.Package:
                        orderItem.Package_Id = model.ItemId;
                        var package = ctx.Packages.FirstOrDefault(x => x.Id == model.ItemId && x.IsDeleted == false);
                        orderItem.Name        = package.Name;
                        orderItem.Price       = package.Price * model.Qty;
                        orderItem.Description = package.Description;
                        break;

                    case (int)CartItemTypes.Offer_Product:
                        orderItem.Offer_Product_Id = model.ItemId;
                        var offerProduct = ctx.Offer_Products.Include(x => x.Product).FirstOrDefault(x => x.Id == model.ItemId && x.IsDeleted == false);
                        orderItem.Name        = offerProduct.Product.Name;
                        orderItem.Price       = offerProduct.DiscountedPrice * model.Qty;
                        orderItem.Description = offerProduct.Description;
                        break;

                    case (int)CartItemTypes.Offer_Package:
                        orderItem.Offer_Package_Id = model.ItemId;
                        var offerPackage = ctx.Offer_Packages.Include(x => x.Package).FirstOrDefault(x => x.Id == model.ItemId && x.IsDeleted == false);
                        orderItem.Name        = offerPackage.Package.Name;
                        orderItem.Price       = offerPackage.DiscountedPrice * model.Qty;
                        orderItem.Description = offerPackage.Description;
                        break;

                    default:
                        throw new Exception("Invalid CartItemType");
                    }
                }

                orderItem.Qty = model.Qty;
            }
            catch (Exception)
            {
                throw;
            }
        }
        public async Task <IHttpActionResult> InsertOrder(OrderViewModel model)
        {
            try
            {
                Order order;

                if (System.Web.HttpContext.Current.Request.Params["PaymentCard"] != null)
                {
                    model.PaymentCard = JsonConvert.DeserializeObject <PaymentCardViewModel>(System.Web.HttpContext.Current.Request.Params["PaymentCard"]);
                }

                if (System.Web.HttpContext.Current.Request.Params["Cart"] != null)
                {
                    model.Cart = JsonConvert.DeserializeObject <CartViewModel>(System.Web.HttpContext.Current.Request.Params["Cart"]);
                }

                Validate(model);

                if (!ModelState.IsValid)
                {
                    return(BadRequest(ModelState));
                }

                if (model.Cart.CartItems.Count() > 0)
                {
                    order = new Order();
                    order.MakeOrder(model);

                    using (SkriblContext ctx = new SkriblContext())
                    {
                        ctx.Orders.Add(order);
                        await ctx.SaveChangesAsync();
                    }

                    return(Ok(new CustomResponse <OrderSummaryViewModel> {
                        Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = new OrderSummaryViewModel(order)
                    }));
                }
                else
                {
                    return(Ok(new CustomResponse <Error> {
                        Message = Global.ResponseMessages.BadRequest, StatusCode = (int)HttpStatusCode.BadRequest, Result = new Error {
                            ErrorMessage = "No items in the cart."
                        }
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
        public async Task <IHttpActionResult> MarkProductAsFavourite(int UserId, int ProductId, bool Favourite)
        {
            try
            {
                using (SkriblContext ctx = new SkriblContext())
                {
                    var favouriteModel = ctx.Favourites.FirstOrDefault(x => x.User_ID == UserId && x.Product_Id == ProductId);

                    if (Favourite)
                    {
                        if (favouriteModel == null)
                        {
                            ctx.Favourites.Add(new Favourite {
                                Product_Id = ProductId, User_ID = UserId
                            });
                            ctx.SaveChanges();
                        }
                        else
                        {
                            if (favouriteModel.IsDeleted)
                            {
                                favouriteModel.IsDeleted = false;
                                ctx.SaveChanges();
                            }
                        }
                    }
                    else
                    {
                        if (favouriteModel != null)
                        {
                            if (!favouriteModel.IsDeleted)
                            {
                                favouriteModel.IsDeleted = true;
                                ctx.SaveChanges();
                            }
                        }
                    }

                    return(Ok(new CustomResponse <string> {
                        Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
        public async Task <IHttpActionResult> EditOrderScheduling(int OrderId, string From, string To, string AdditionalNote)
        {
            try
            {
                DateTime FromDateTime;
                DateTime ToDateTime;
                DateTime.TryParse(From, out FromDateTime);
                DateTime.TryParse(To, out ToDateTime);

                if (FromDateTime == DateTime.MinValue || ToDateTime == DateTime.MinValue)
                {
                    return(Ok(new CustomResponse <Error> {
                        Message = "BadRequest", StatusCode = (int)HttpStatusCode.BadRequest, Result = new Error {
                            ErrorMessage = "Invalid startdate or enddate"
                        }
                    }));
                }

                using (SkriblContext ctx = new SkriblContext())
                {
                    var order = ctx.Orders.FirstOrDefault(x => x.Id == OrderId);
                    if (order != null)
                    {
                        order.DeliveryTime_From = FromDateTime;
                        order.DeliveryTime_To   = ToDateTime;
                        order.AdditionalNote    = AdditionalNote;
                        ctx.SaveChanges();
                        return(Ok(new CustomResponse <string> {
                            Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK
                        }));
                    }
                    else
                    {
                        return(Ok(new CustomResponse <Error> {
                            Message = Global.ResponseMessages.NotFound, StatusCode = (int)HttpStatusCode.NotFound, Result = new Error {
                                ErrorMessage = Global.ResponseMessages.GenerateInvalid("OrderId")
                            }
                        }));
                    }
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
        public async Task <IHttpActionResult> AddHowItWorksVideo()
        {
            try
            {
                var httpRequest = HttpContext.Current.Request;

                if (httpRequest.Files.Count > 0)
                {
                    var postedFile    = httpRequest.Files[0];
                    var fileExtension = Path.GetExtension(postedFile.FileName).ToLower();
                    var newFullPath   = HttpContext.Current.Server.MapPath("~/" + ConfigurationManager.AppSettings["VideosFolderPath"] + "HowItWorks" + fileExtension);
                    postedFile.SaveAs(newFullPath);
                    using (SkriblContext ctx = new SkriblContext())
                    {
                        var setting = ctx.Settings.FirstOrDefault();
                        if (setting != null)
                        {
                            setting.HowItWorksUrl = ConfigurationManager.AppSettings["VideosFolderPath"] + "HowItWorks" + fileExtension;
                        }
                        else
                        {
                            ctx.Settings.Add(new Settings {
                                HowItWorksUrl = ConfigurationManager.AppSettings["VideosFolderPath"] + "HowItWorks" + fileExtension
                            });
                        }
                        ctx.SaveChanges();
                        return(Ok(new CustomResponse <string> {
                            Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = ConfigurationManager.AppSettings["VideosFolderPath"] + "HowItWorks" + fileExtension
                        }));
                    }
                }
                else
                {
                    return(Ok(new CustomResponse <Error> {
                        Message = Global.ResponseMessages.BadRequest, StatusCode = (int)HttpStatusCode.BadRequest, Result = new Error {
                            ErrorMessage = "File not found"
                        }
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
 public async Task <IHttpActionResult> GetUserFavourites(int UserId)
 {
     try
     {
         using (SkriblContext ctx = new SkriblContext())
         {
             return(Ok(new CustomResponse <FavouritesViewModel> {
                 Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = new FavouritesViewModel {
                     Favourites = ctx.Favourites.Include(x => x.Product).Where(x => x.User_ID == UserId && x.IsDeleted == false).ToList()
                 }
             }));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(Utility.LogError(ex)));
     }
 }
        public async Task ReceiveAsync(AuthenticationTokenReceiveContext context)
        {
            AuthenticationTicket ticket;

            using (SkriblContext ctx = new SkriblContext())
            {
                if (_refreshTokens.TryRemove(context.Token, out ticket))
                {
                    var refreshToken = ctx.RefreshTokens.FirstOrDefault(x => x.Token == context.Token);
                    if (refreshToken != null)
                    {
                        ctx.RefreshTokens.Remove(refreshToken);
                        ctx.SaveChanges();
                        context.SetTicket(ticket);
                    }
                }
            }
        }
 public async Task <IHttpActionResult> GetAllCities(int?Page = 0, int?Items = 10)
 {
     try
     {
         using (SkriblContext ctx = new SkriblContext())
         {
             return(Ok(new CustomResponse <List <Cities> >
             {
                 Message = Global.ResponseMessages.Success,
                 StatusCode = (int)HttpStatusCode.OK,
                 Result = ctx.Cities.Where(x => !x.IsDeleted).ToList()
             }));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(Utility.LogError(ex)));
     }
 }
 public async Task <IHttpActionResult> GetAllStoresByFranchisorId(int FranchisorId)
 {
     try
     {
         using (SkriblContext ctx = new SkriblContext())
         {
             CustomResponse <IEnumerable <Store> > response = new CustomResponse <IEnumerable <Store> >
             {
                 Message    = Global.ResponseMessages.Success,
                 StatusCode = (int)HttpStatusCode.OK,
                 Result     = ctx.Stores.ToList()
             };
             return(Ok(response));
         }
     }
     catch (Exception ex)
     {
         return(StatusCode(Utility.LogError(ex)));
     }
 }
Esempio n. 29
0
        public async Task <IHttpActionResult> GetAvailibilityScheduleByDateRange(int userId, bool availibility, string StartDate)
        {
            try
            {
                DateTime startDateTime;
                DateTime.TryParse(StartDate, out startDateTime);

                using (SkriblContext ctx = new SkriblContext())
                {
                    var schedule = ctx.DeliveryManAvailibilitySchedules.FirstOrDefault(x => x.IsDeleted == false && x.IsAvailable == availibility && x.StartDate.Month == startDateTime.Month && x.StartDate.Year == startDateTime.Year);
                    return(Ok(new CustomResponse <DeliveryMan_AvailibilitySchedule> {
                        Message = Global.ResponseMessages.Success, StatusCode = (int)HttpStatusCode.OK, Result = schedule
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }
Esempio n. 30
0
        public async Task <IHttpActionResult> GetBoxesByType(int Type, int UserId)
        {
            try
            {
                using (SkriblContext ctx = new SkriblContext())
                {
                    List <Box> boxes = new List <Box>();
                    if (Type == (int)BoxCategoryOptions.HallOfFame)
                    {
                        boxes = ctx.Boxes.Where(x => x.IsDeleted == false && x.ReleaseDate.Month < DateTime.Now.Month).ToList();
                    }
                    else
                    {
                        boxes = ctx.Boxes.Where(x => x.IsDeleted == false && x.BoxCategory_Id == Type).ToList();
                    }

                    var userSubscriptions = ctx.UserSubscriptions.Where(x => x.User_Id == UserId && x.IsDeleted == false).ToList();

                    if (userSubscriptions != null && userSubscriptions.Count > 0)
                    {
                        foreach (var box in boxes)
                        {
                            box.AlreadySubscribed = userSubscriptions.Any(x => x.Box_Id == box.Id);
                        }
                    }

                    return(Ok(new CustomResponse <SearchBoxesViewModel>
                    {
                        Message = Global.ResponseMessages.Success,
                        StatusCode = (int)HttpStatusCode.OK,
                        Result = new SearchBoxesViewModel {
                            Boxes = boxes
                        }
                    }));
                }
            }
            catch (Exception ex)
            {
                return(StatusCode(Utility.LogError(ex)));
            }
        }