public libcis.DataAccessLogic.AuthenticationResult Get(int marker_id)
 {
     var context = new libcis.Models.CISDatabaseEntities();
     var result = from provider_hotspots in context.ProviderHotspots
                  where provider_hotspots.MarkerId == marker_id
                  select provider_hotspots;
     var provider_hotspot = result.ToList();
     var return_message = new libcis.DataAccessLogic.AuthenticationResult();
     if(provider_hotspot.Count == 0)
     {
         return_message.Success = false;
         //TODO: do not keep static strings here
         return_message.ErrorMessage = string.Format("Invalid marker id: {0}", marker_id);
     }
     else
     {
         var hotspot = provider_hotspot.First();
         libcis.Models.Order customer_order = new libcis.Models.Order();
         customer_order.ProviderHotspotId = hotspot.Id;
         context.Orders.Add(customer_order);
         context.SaveChanges();
         return_message.OrderId = customer_order.Id;
         return_message.Success = true;
         return_message.ProviderId = hotspot.ProviderId;
         return_message.HotspotId = hotspot.Id;
     }
     context.Dispose();
     return return_message;
 }
Example #2
0
 public IList<Models.Service> Get(int provider_id)
 {
     var context = new libcis.Models.CISDatabaseEntities();
     var result = from services in context.Services
                  where services.ProviderId == provider_id
                  select services;
     var all_services = result.ToList();
     context.Dispose();
     return all_services;
 }
Example #3
0
        public libcis.DataAccessLogic.CheckoutResult Checkout(int order_id)
        {
            libcis.DataAccessLogic.CheckoutResult checkout_result = new DataAccessLogic.CheckoutResult();

            var context = new libcis.Models.CISDatabaseEntities();
            var hotspot_result = from hotspots in context.Orders
                                 where hotspots.Id == order_id
                                 select hotspots.ProviderHotspotId;
            var hotspot_id = hotspot_result.First();
            var provider_result = from data in context.ProviderHotspots
                                  where data.Id == hotspot_id
                                  select data.ProviderId;
            var provider_id = provider_result.First();
            var result = from orders in context.OrderContents
                         where orders.OrderId == order_id
                         select orders;
            var checkout_orders = result;

            foreach (var current_order in checkout_orders)
            {
                var service_name_result = from services in context.Services
                                          where services.Id == current_order.ServiceId
                                          select services.Name;
                string service_name = service_name_result.First();

                var new_log = new libcis.Models.Log();
                new_log.ServiceId = current_order.ServiceId;
                new_log.ProviderHotspotId = hotspot_id;
                new_log.ProviderId = provider_id;
                new_log.Quantity = current_order.Quantity;
                new_log.OrderId = order_id;
                if (current_order.Time.HasValue)
                    new_log.Time = current_order.Time.Value;
                else
                    new_log.Time = DateTime.Now;
                context.Logs.Add(new_log);

                //Removes order_content from Database
                context.OrderContents.Remove(current_order);
            }
            //Removes Order
            var order_result = from orders in context.Orders
                               where orders.Id == order_id
                               select orders;
            context.Orders.Remove(order_result.First());
            context.SaveChanges();
            context.Dispose();

            checkout_result.Success = true;
            return checkout_result;
        }
Example #4
0
        public DataAccessLogic.ActiveProviderHotspotsResult GetActiveProviderHotspots(int provider_id)
        {
            DataAccessLogic.ActiveProviderHotspotsResult result = new DataAccessLogic.ActiveProviderHotspotsResult();
            var context = new libcis.Models.CISDatabaseEntities();
            var active_hotspots_result = from hotspots in context.ProviderHotspots
                                         where hotspots.ProviderId == provider_id
                                         select hotspots;
            var active_hotspots = active_hotspots_result.ToList();
            foreach (var hotspot in active_hotspots)
            {
                float total_hotspot_cost = 0;
                var order_pair = new DataAccessLogic.ActiveProviderHotspotOrderItemsPair();
                order_pair.ProviderHotspotId = hotspot.Id;

                var active_orders_for_hotspot_result = from orders in context.Orders
                                                       where orders.ProviderHotspotId == hotspot.Id
                                                       select orders;
                var active_orders_for_hotspot = active_orders_for_hotspot_result.ToList();
                foreach (var order in active_orders_for_hotspot)
                {
                    var order_contents_result = from order_contents in context.OrderContents
                                                where order_contents.OrderId == order.Id
                                                join service in context.Services on order_contents.ServiceId equals service.Id
                                                select new
                                                {
                                                    service_id = service.Id,
                                                    serivce_name = service.Name,
                                                    service_price = service.Price,
                                                    quantity = order_contents.Quantity
                                                };
                    var order_items = order_contents_result.ToList();
                    foreach (var order_item in order_items)
                    {
                        var order_item_object = new DataAccessLogic.OrderItem();
                        order_item_object.ServiceId = order_item.service_id;
                        order_item_object.Name = order_item.serivce_name;
                        order_item_object.Price = order_item.service_price;
                        order_item_object.Quantity = order_item.quantity;
                        order_pair.OrderItems.Add(order_item_object);
                        total_hotspot_cost += order_item_object.Price;
                    }
                }
                order_pair.TotalCost = total_hotspot_cost;
                result.ActiveProviderHotspotsAndOrderItems.Add(order_pair);

            }
            context.Dispose();
            return result;
        }
Example #5
0
        public IList<int> GetPendingProviderHotspots(int provider_id)
        {
            var context = new libcis.Models.CISDatabaseEntities();
            var pending_hotspots_result = (from hotspots in context.ProviderHotspots
                                          where hotspots.ProviderId == provider_id
                                          join order in context.Orders on hotspots.Id equals order.ProviderHotspotId
                                          where order.MarkedForChekout == 1
                                          select new
                                          {
                                              hotspot_id = hotspots.Id
                                          });

            var pending_hotspots = pending_hotspots_result.Select(selector => selector.hotspot_id).ToList();
            return pending_hotspots;
        }
Example #6
0
        public IList<libcis.DataAccessLogic.ServiceObject> GetPendingServices(int provider_id)
        {
            var service_objects = new List<libcis.DataAccessLogic.ServiceObject>();
            var context = new libcis.Models.CISDatabaseEntities();

            var pending_hotspots = (from hotspots in context.ProviderHotspots
                                 where hotspots.ProviderId == provider_id
                                    select hotspots).ToList();

            foreach (var hotspot in pending_hotspots)
            {
                var order_result = from orders in context.Orders
                                   where orders.ProviderHotspotId == hotspot.Id
                                   select orders.Id;
                if (order_result.Count() != 0)
                {
                    var current_order_id = order_result.First();

                    var order_content_result = from contents in context.OrderContents
                                               where contents.OrderId == current_order_id &&
                                               contents.Viewed == 0
                                               join services in context.Services on contents.ServiceId equals services.Id
                                               select new
                                              {
                                                  service_name = services.Name,
                                                  service_price = services.Price,
                                                  service_quantity = contents.Quantity,
                                                  service_id = services.Id,

                                              };
                    foreach (var item in order_content_result)
                    {
                        var service_object = new libcis.DataAccessLogic.ServiceObject();
                        service_object.ServiceName = item.service_name;
                        service_object.Quantity = item.service_quantity;
                        service_object.Price = item.service_price;
                        service_object.HotSpotId = hotspot.Id;
                        service_object.ServiceId = item.service_id;
                        service_objects.Add(service_object);
                    }
                }
            }
            context.Dispose();
            return service_objects;
        }
Example #7
0
 public libcis.DataAccessLogic.MarkAsViewedResult MarkAsViewed(IList<int> order_content_ids)
 {
     libcis.DataAccessLogic.MarkAsViewedResult viewed_result = new DataAccessLogic.MarkAsViewedResult();
     var context = new libcis.Models.CISDatabaseEntities();
     foreach(var order_content_id in order_content_ids)
     {
         var result = from contents in context.OrderContents
                      where contents.Id == order_content_id
                      select contents;
         var current_order_content = result.First();
         current_order_content.Viewed = 1;
     }
     context.SaveChanges();
     viewed_result.Success = true;
     return viewed_result;
 }
Example #8
0
 public libcis.DataAccessLogic.MarkForCheckoutResult MarkForCheckout(int order_id)
 {
     libcis.DataAccessLogic.MarkForCheckoutResult checkout_result = new DataAccessLogic.MarkForCheckoutResult();
     var context = new libcis.Models.CISDatabaseEntities();
     var order_result = from orders in context.Orders
                        where orders.Id == order_id
                        select orders;
     var current_order = order_result.First();
     current_order.MarkedForChekout = 1;
     checkout_result.Success = true;
     context.SaveChanges();
     context.Dispose();
     return checkout_result;
 }