public bool OrderItem([FromBody]OrderModel data)
        {
            var result = false;
            if (data == null) return false;
            try
            {
                AaauctionEntities db = new AaauctionEntities();
                var orderItem = new vehicle_order();
                orderItem.stock_no = data.stockno;
                orderItem.customerid = data.customerid;
                orderItem.price = data.price;
                orderItem.order_date = DateTime.Now;
                orderItem.ispaid = false;
                db.vehicle_order.Add(orderItem);
                db.SaveChanges();
                var product = db.vehicle_for_sale.Where(x => x.stock_no == data.stockno).Select(y => y).FirstOrDefault();
                product.is_sold = true;
                db.SaveChanges();
            }
            catch(Exception ex)
            {

            }
            return result;
        }
예제 #2
0
        public bool OrderItem([FromBody] OrderModel data)
        {
            var result = false;

            if (data == null)
            {
                return(false);
            }
            try
            {
                AaauctionEntities db = new AaauctionEntities();
                var orderItem        = new vehicle_order();
                orderItem.stock_no   = data.stockno;
                orderItem.customerid = data.customerid;
                orderItem.price      = data.price;
                orderItem.order_date = DateTime.Now;
                orderItem.ispaid     = false;
                db.vehicle_order.Add(orderItem);
                db.SaveChanges();
                var product = db.vehicle_for_sale.Where(x => x.stock_no == data.stockno).Select(y => y).FirstOrDefault();
                product.is_sold = true;
                db.SaveChanges();
            }
            catch (Exception ex)
            {
            }
            return(result);
        }
        private static void AddFeature(AaauctionEntities db, string featureName, int stock_no)
        {
            var feaureId = db.vehicle_features.Where(x => x.feature_name == featureName).Select(y => y.featureid).FirstOrDefault();

            if (feaureId == 0)
            {
                var feature = db.vehicle_features.Add(new vehicle_features()
                {
                    feature_name = featureName
                });
                db.SaveChanges();
                feaureId = feature.featureid;
            }
            var vehicleFeature = db.features_on_vehicles_for_sale.Where(x => x.featureid == feaureId && x.stock_no == stock_no).Select(y => y).FirstOrDefault();

            if (vehicleFeature == null)
            {
                db.features_on_vehicles_for_sale.Add(new features_on_vehicles_for_sale()
                {
                    featureid = feaureId, stock_no = stock_no
                });
                db.SaveChanges();
            }
        }
        public object GetProducts(int pageIndex = 0,int pageSize = 10)
        {

            try
            {
                AaauctionEntities db = new AaauctionEntities();
                var products = db.vehicle_for_sale.Where(x => x.is_sold == false).OrderByDescending(x => x.last_modified_date).Select(x => x);
                var productQuery = (from product in products.Skip(pageIndex * pageSize).Take(pageSize)
                                    join model in db.models on product.model_id equals model.id
                                    into models
                                    from mod in models.DefaultIfEmpty()
                                    join make in db.makes on mod.make_id equals make.makeid
                                    into makes
                                    from mak in makes.DefaultIfEmpty()
                                    join img in db.images_on_vehicles_for_sale on product.stock_no equals img.stock_no
                                    into images
                                    from img in images.DefaultIfEmpty()
                                    join feature in db.features_on_vehicles_for_sale on product.stock_no equals feature.stock_no
                                    into featJoin
                                    from fj in featJoin.DefaultIfEmpty()
                                    join ft in db.vehicle_features
                                    on fj.featureid equals ft.featureid
                                    into featureJoin
                                    from f in featureJoin.DefaultIfEmpty()
                                    group new { Product = product, model = mod, make = mak, Image = img, Feature = f } by product.stock_no into grp

                                    select grp
                                   ).ToList();
                List<Product> productsFromDB = new List<Product>();

                foreach (var item in productQuery)
                {
                    var productItem = item.FirstOrDefault().Product;
                    var product = new Product();
                    product.Currency = "USD";
                    product.Stock_No = productItem.stock_no;
                    product.Year = productItem.year;
                    product.Month = productItem.month;
                    product.KM_ran = productItem.KM_ran;
                    //var model = db.models.Where(x => x.id == productItem.model_id).FirstOrDefault();
                    product.Model = item.FirstOrDefault().model.model_name;// model.model_name;
                    product.Maker = item.FirstOrDefault().make.make_name;//db.makes.Where(x => x.makeid == model.make_id).Select(y => y.make_name).FirstOrDefault();
                    product.Price = productItem.price.HasValue == true ? productItem.price.Value : 0;
                    product.CC = productItem.CC;
                    product.chassis_no_1 = productItem.chassis_no_1;
                    product.chassis_no_2 = productItem.chassis_no_2;
                    product.Color = productItem.color;
                    product.Fuel = productItem.fuel;
                    product.Gear_m_at = productItem.gear_at.HasValue == true && productItem.gear_at.Value == true ? "A/T" : "Manual";
                    product.LastModifiedDate = productItem.last_modified_date.HasValue == true ? productItem.last_modified_date.Value.ToShortDateString() : "";
                    product.Images = item.Where(fI => fI.Image != null).OrderBy(o => o.Image.imageid).GroupBy(x => x.Image.imageurl).Select(y => y.Max(z => z.Image.imageurl)).ToArray();
                    var features = item.Where(fI => fI.Feature != null).GroupBy(x => x.Feature.feature_name).Select(y => y.Key).ToList();
                    product.Equipments = new Equipment();
                    foreach (var feature in features)
                    {
                        switch (feature)
                        {
                            case "A/C":
                                product.Equipments.AC = true;
                                break;
                            case "PS":
                                product.Equipments.PS = true;
                                break;
                            case "PW":
                                product.Equipments.PW = true;
                                break;
                            case "4WD":
                                product.Equipments.FourWheelDrive = true;
                                break;
                            case "WCAB":
                                product.Equipments.WCAB = true;
                                break;
                        }
                    }
                    productsFromDB.Add(product);
                }

                ProductsResponse response = new ProductsResponse() { products = productsFromDB.ToArray(), count = products.Count() };
                return Request.CreateResponse<ProductsResponse>(HttpStatusCode.OK, response);
            }
            catch (Exception ex)
            {

                return Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message);
            }
        }
        private static void SaveProducs(List<Product> productsTobeImported)
        {
            try
            {
                AaauctionEntities db = new AaauctionEntities();
                foreach (var product in productsTobeImported)
                {
                    var stock_no = db.vehicle_for_sale.Where(x => x.stock_no == product.Stock_No).Select(y => y.stock_no).FirstOrDefault();
                    if(stock_no > 0)
                    {
                        continue;
                    }
                    var makerId = db.makes.Where(x => x.make_name == product.Maker).Select(y => y.makeid).FirstOrDefault();
                    //break;
                    if (makerId == 0)
                    {
                        var make = db.makes.Add(new make() { make_name = product.Maker });
                        db.SaveChanges();
                        makerId = make.makeid;
                    }
                    var modelId = db.models.Where(x => x.make_id == makerId && x.model_name == product.Model).Select(y => y.id).FirstOrDefault();
                    if(modelId == 0 )
                    {
                        var model = db.models.Add(new model() { model_name = product.Model, make_id = makerId });
                        db.SaveChanges();
                        modelId = model.id;
                    }
                    var categoryId = db.vehicle_category.Where(x => x.category == product.ProductType).Select(y => y.categoryid).FirstOrDefault();
                    if(categoryId == 0)
                    {
                        var category = db.vehicle_category.Add(new vehicle_category() { category = product.ProductType });
                        db.SaveChanges();
                        categoryId = category.categoryid;
                    }
                    
                    if(stock_no == 0)
                    {
                        var addProduct = new vehicle_for_sale();
                        addProduct.is_sold = false;
                        addProduct.model_id = modelId;
                        addProduct.vehicle_category_id = categoryId;
                        addProduct.CC = product.CC;
                        addProduct.chassis_no_1 = product.chassis_no_1;
                        addProduct.chassis_no_2 = product.chassis_no_2;
                        addProduct.color = product.Color;
                        addProduct.ETD = product.ETD;
                        addProduct.gear_at = product.Gear_m_at == "A/T" ? true : false;
                        addProduct.grade = product.Grade;
                        addProduct.KM_ran = product.KM_ran;
                        addProduct.last_modified_date = DateTime.Now;
                        addProduct.month = product.Month;
                        addProduct.year = product.Year;
                        addProduct.no_of_doors = product.NoOfDoors;
                        addProduct.price = product.Price;
                        addProduct.fuel = product.Fuel;
                        addProduct.stock_no = product.Stock_No;
                        var vehicleForSale = db.vehicle_for_sale.Add(addProduct);
                        db.SaveChanges();
                        stock_no = vehicleForSale.stock_no;
                    }
                    if(product.Equipments.AC == true)
                    {
                        AddFeature(db, "AC",stock_no);
                    }
                    if(product.Equipments.FourWheelDrive == true)
                    {
                        AddFeature(db, "FourWheelDrive",stock_no);
                    }
                    if (product.Equipments.PS == true)
                    {
                        AddFeature(db, "PS", stock_no);
                    }
                    if (product.Equipments.PW == true)
                    {
                        AddFeature(db, "PW", stock_no);
                    }
                    if (product.Equipments.WCAB == true)
                    {
                        AddFeature(db, "WCAB", stock_no);
                    }
                    foreach(var image in product.Images)
                    {
                        var imageId = db.images_on_vehicles_for_sale.Where(x => x.stock_no == stock_no && x.imageurl == image).Select(y => y.imageid).FirstOrDefault();
                        if (imageId == 0)
                        {
                            db.images_on_vehicles_for_sale.Add(new images_on_vehicles_for_sale() { imageurl = image, stock_no = stock_no });
                            db.SaveChanges();
                        }
                    }
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {

                throw;
            }
        }
        private static void AddFeature(AaauctionEntities db, string featureName,int stock_no)
        {
            var feaureId = db.vehicle_features.Where(x => x.feature_name == featureName).Select(y => y.featureid).FirstOrDefault();
            if (feaureId == 0)
            {
                var feature = db.vehicle_features.Add(new vehicle_features() { feature_name = featureName });
                db.SaveChanges();
                feaureId = feature.featureid;
            }
            var vehicleFeature = db.features_on_vehicles_for_sale.Where(x => x.featureid == feaureId && x.stock_no == stock_no).Select(y => y).FirstOrDefault();
            if (vehicleFeature == null)
            {
                db.features_on_vehicles_for_sale.Add(new features_on_vehicles_for_sale() { featureid = feaureId, stock_no = stock_no });
                db.SaveChanges();
            }

        }
        public object GetProducts(int pageIndex = 0, int pageSize = 10)
        {
            try
            {
                AaauctionEntities db = new AaauctionEntities();
                var products         = db.vehicle_for_sale.Where(x => x.is_sold == false).OrderByDescending(x => x.last_modified_date).Select(x => x);
                var productQuery     = (from product in products.Skip(pageIndex * pageSize).Take(pageSize)
                                        join model in db.models on product.model_id equals model.id
                                        into models
                                        from mod in models.DefaultIfEmpty()
                                        join make in db.makes on mod.make_id equals make.makeid
                                        into makes
                                        from mak in makes.DefaultIfEmpty()
                                        join img in db.images_on_vehicles_for_sale on product.stock_no equals img.stock_no
                                        into images
                                        from img in images.DefaultIfEmpty()
                                        join feature in db.features_on_vehicles_for_sale on product.stock_no equals feature.stock_no
                                        into featJoin
                                        from fj in featJoin.DefaultIfEmpty()
                                        join ft in db.vehicle_features
                                        on fj.featureid equals ft.featureid
                                        into featureJoin
                                        from f in featureJoin.DefaultIfEmpty()
                                        group new { Product = product, model = mod, make = mak, Image = img, Feature = f } by product.stock_no into grp

                                        select grp
                                        ).ToList();
                List <Product> productsFromDB = new List <Product>();

                foreach (var item in productQuery)
                {
                    var productItem = item.FirstOrDefault().Product;
                    var product     = new Product();
                    product.Currency = "USD";
                    product.Stock_No = productItem.stock_no;
                    product.Year     = productItem.year;
                    product.Month    = productItem.month;
                    product.KM_ran   = productItem.KM_ran;
                    //var model = db.models.Where(x => x.id == productItem.model_id).FirstOrDefault();
                    product.Model            = item.FirstOrDefault().model.model_name; // model.model_name;
                    product.Maker            = item.FirstOrDefault().make.make_name;   //db.makes.Where(x => x.makeid == model.make_id).Select(y => y.make_name).FirstOrDefault();
                    product.Price            = productItem.price.HasValue == true ? productItem.price.Value : 0;
                    product.CC               = productItem.CC;
                    product.chassis_no_1     = productItem.chassis_no_1;
                    product.chassis_no_2     = productItem.chassis_no_2;
                    product.Color            = productItem.color;
                    product.Fuel             = productItem.fuel;
                    product.Gear_m_at        = productItem.gear_at.HasValue == true && productItem.gear_at.Value == true ? "A/T" : "Manual";
                    product.LastModifiedDate = productItem.last_modified_date.HasValue == true?productItem.last_modified_date.Value.ToShortDateString() : "";

                    product.Images = item.Where(fI => fI.Image != null).OrderBy(o => o.Image.imageid).GroupBy(x => x.Image.imageurl).Select(y => y.Max(z => z.Image.imageurl)).ToArray();
                    var features = item.Where(fI => fI.Feature != null).GroupBy(x => x.Feature.feature_name).Select(y => y.Key).ToList();
                    product.Equipments = new Equipment();
                    foreach (var feature in features)
                    {
                        switch (feature)
                        {
                        case "A/C":
                            product.Equipments.AC = true;
                            break;

                        case "PS":
                            product.Equipments.PS = true;
                            break;

                        case "PW":
                            product.Equipments.PW = true;
                            break;

                        case "4WD":
                            product.Equipments.FourWheelDrive = true;
                            break;

                        case "WCAB":
                            product.Equipments.WCAB = true;
                            break;
                        }
                    }
                    productsFromDB.Add(product);
                }

                ProductsResponse response = new ProductsResponse()
                {
                    products = productsFromDB.ToArray(), count = products.Count()
                };
                return(Request.CreateResponse <ProductsResponse>(HttpStatusCode.OK, response));
            }
            catch (Exception ex)
            {
                return(Request.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message));
            }
        }
        private static void SaveProducs(List <Product> productsTobeImported)
        {
            try
            {
                AaauctionEntities db = new AaauctionEntities();
                foreach (var product in productsTobeImported)
                {
                    var stock_no = db.vehicle_for_sale.Where(x => x.stock_no == product.Stock_No).Select(y => y.stock_no).FirstOrDefault();
                    if (stock_no > 0)
                    {
                        continue;
                    }
                    var makerId = db.makes.Where(x => x.make_name == product.Maker).Select(y => y.makeid).FirstOrDefault();
                    //break;
                    if (makerId == 0)
                    {
                        var make = db.makes.Add(new make()
                        {
                            make_name = product.Maker
                        });
                        db.SaveChanges();
                        makerId = make.makeid;
                    }
                    var modelId = db.models.Where(x => x.make_id == makerId && x.model_name == product.Model).Select(y => y.id).FirstOrDefault();
                    if (modelId == 0)
                    {
                        var model = db.models.Add(new model()
                        {
                            model_name = product.Model, make_id = makerId
                        });
                        db.SaveChanges();
                        modelId = model.id;
                    }
                    var categoryId = db.vehicle_category.Where(x => x.category == product.ProductType).Select(y => y.categoryid).FirstOrDefault();
                    if (categoryId == 0)
                    {
                        var category = db.vehicle_category.Add(new vehicle_category()
                        {
                            category = product.ProductType
                        });
                        db.SaveChanges();
                        categoryId = category.categoryid;
                    }

                    if (stock_no == 0)
                    {
                        var addProduct = new vehicle_for_sale();
                        addProduct.is_sold             = false;
                        addProduct.model_id            = modelId;
                        addProduct.vehicle_category_id = categoryId;
                        addProduct.CC                 = product.CC;
                        addProduct.chassis_no_1       = product.chassis_no_1;
                        addProduct.chassis_no_2       = product.chassis_no_2;
                        addProduct.color              = product.Color;
                        addProduct.ETD                = product.ETD;
                        addProduct.gear_at            = product.Gear_m_at == "A/T" ? true : false;
                        addProduct.grade              = product.Grade;
                        addProduct.KM_ran             = product.KM_ran;
                        addProduct.last_modified_date = DateTime.Now;
                        addProduct.month              = product.Month;
                        addProduct.year               = product.Year;
                        addProduct.no_of_doors        = product.NoOfDoors;
                        addProduct.price              = product.Price;
                        addProduct.fuel               = product.Fuel;
                        addProduct.stock_no           = product.Stock_No;
                        var vehicleForSale = db.vehicle_for_sale.Add(addProduct);
                        db.SaveChanges();
                        stock_no = vehicleForSale.stock_no;
                    }
                    if (product.Equipments.AC == true)
                    {
                        AddFeature(db, "AC", stock_no);
                    }
                    if (product.Equipments.FourWheelDrive == true)
                    {
                        AddFeature(db, "FourWheelDrive", stock_no);
                    }
                    if (product.Equipments.PS == true)
                    {
                        AddFeature(db, "PS", stock_no);
                    }
                    if (product.Equipments.PW == true)
                    {
                        AddFeature(db, "PW", stock_no);
                    }
                    if (product.Equipments.WCAB == true)
                    {
                        AddFeature(db, "WCAB", stock_no);
                    }
                    foreach (var image in product.Images)
                    {
                        var imageId = db.images_on_vehicles_for_sale.Where(x => x.stock_no == stock_no && x.imageurl == image).Select(y => y.imageid).FirstOrDefault();
                        if (imageId == 0)
                        {
                            db.images_on_vehicles_for_sale.Add(new images_on_vehicles_for_sale()
                            {
                                imageurl = image, stock_no = stock_no
                            });
                            db.SaveChanges();
                        }
                    }
                }
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                throw;
            }
        }