예제 #1
0
 public SalesItem FindById(int id)
 {
     query   = "SELECT id,product_id,sale_id,quantity FROM sales_item WHERE id=@id";
     @params = new Dictionary <string, object>
     {
         { "@id", id }
     };
     try
     {
         object[]  result    = (object[])base.SelectQuery()[0];
         SalesItem salesItem = new SalesItem
         {
             Id        = (int)result[0],
             ProductId = (int)result[1],
             SaleId    = (int)result[2],
             Quantity  = (int)result[3]
         };
         return(salesItem);
     }
     catch (ArgumentOutOfRangeException e)
     {
         Console.WriteLine("No se encontro el detalle de la venta con Id {0}", id);
     }
     return(null);
 }
        public ActionResult Create(SalesItem salesItem)
        {
            if (ModelState.IsValid)
            {
                var artist = db.SalesCollections.First(x => x.Id == salesItem.SalesCollection.Id);

                var art = (List<ArtworkViewModel>)Session["uploads"];

                var artToAdd = new List<SalesItem>();

                if (art.Count > 0)
                {
                    foreach (var a in art)
                    {
                        a.SalesItem.ForSale = true;
                        a.SalesItem.SalesCollection = artist;
                        db.SalesItem.Add(a.SalesItem);
                    }
                }

                db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(salesItem);
        }
예제 #3
0
        public void SalesItemGetTotalTest()
        {
            SalesItem target = new SalesItem("test item", 10M);
            decimal   actual = target.GetTotal();

            Assert.AreEqual(10M, actual);
        }
예제 #4
0
        public void SaveItemTest()
        {
            byte[] data = new byte[200];


            SalesItem item     = new SalesItem("Code", "0001", 100, 15, "ECON", DateTime.Today, 34, 2);
            SalesItem readItem = null;

            using (BinaryWriter writer = new BinaryWriter(new MemoryStream(data)))
            {
                item.SaveItem(writer);
            }

            using (BinaryReader reader = new BinaryReader(new MemoryStream(data)))
            {
                readItem = SalesItem.Load(reader);
            }

            Assert.AreEqual(item.ProductionCode, readItem.ProductionCode);
            Assert.AreEqual(item.InvoiceNumber, readItem.InvoiceNumber);
            Assert.AreEqual(item.Units, readItem.Units);
            Assert.AreEqual(item.TotalPieces, readItem.TotalPieces);
            Assert.AreEqual(item.Grade, readItem.Grade);
            Assert.AreEqual(item.Date, readItem.Date);
            Assert.AreEqual(item.MasterID, readItem.MasterID);
        }
예제 #5
0
        public async Task <IHttpActionResult> PutSalesItem(int id, SalesItem salesItem)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != salesItem.SalesItemID)
            {
                return(BadRequest());
            }

            db.Entry(salesItem).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SalesItemExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
        public async Task <IActionResult> PutSalesItem(int id, SalesItem salesItem)
        {
            if (id != salesItem.SalesItemId)
            {
                return(BadRequest());
            }

            _context.Entry(salesItem).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SalesItemExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <ActionResult <SalesItem> > PostSalesItem(SalesItem salesItem)
        {
            _context.SalesItems.Add(salesItem);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetSalesItem", new { id = salesItem.SalesItemId }, salesItem));
        }
예제 #8
0
        private void ShowSelledItems_Click(object sender, RoutedEventArgs e)
        {
            SalesItem sl = new SalesItem();

            sl.Show();
            this.Close();
        }
예제 #9
0
        public void GetAllTest()
        {
            List <SalesItem> allItems = _manager.GetAll();

            Assert.AreEqual(4, allItems.Count);

            SalesItem item = _manager.GetById(1);

            Assert.IsNotNull(item);
            Assert.AreEqual(1, item.Id);

            item = _manager.GetById(0);
            Assert.IsNull(item);

            SalesItem newItem = new SalesItem()
            {
                Name = "Bottle", Price = 1.0, Quantity = 45
            };

            SalesItem it = _manager.Add(newItem);

            Assert.AreEqual(it.Name, newItem.Name);

            allItems = _manager.GetAll();
            Assert.AreEqual(5, allItems.Count);
        }
예제 #10
0
        public static async Task DoWork()
        {
            try
            {
                // Assuming We Have A Sales Item Object Data Requires An Image To It
                SalesItem item = new SalesItem();
                // Assuming We Are Saving Sales Item Images
                PhotoBucketModel data = new PhotoBucketModel("SalesItemPhotoBucket", "Sales", "jpg");
                // Assuming We Are Getting The Stream From Local Desktop File
                data.ImageStream = new FileStream(@"c:\users\mypc\desktop\sample.jpg", FileMode.Open, FileAccess.Read);
                // Instantiate Photobucket With Desired Storage Name And Storage Key
                PhotoBucketHelper bucket = new PhotoBucketHelper("StorageName", "StorageKey");
                // Add The Image To Azure
                var result = await bucket.AddImage(data);

                // Assign The ImageID To Sales Item Object
                item.ImageID = data.ImageID;
                // Save Sales Item Into Data Store


                // Later On During Rendering We Call The Details Through Azure Tables.
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
        /// <summary>
        /// Adds the sale to the list of sales
        /// </summary>
        /// <param name="description"></param>
        /// <param name="invoiceNum"></param>
        /// <param name="date"></param>
        /// <param name="units">Pieces in the order expressed as a decimal in Units</param>
        /// <param name="pieces">Total pieces of the order</param>
        /// <param name="grade"></param>
        /// <param name="master"></param>
        /// <returns></returns>
        public static SalesItem AddSales(string description, string invoiceNum, DateTime date, double units, double pieces, string grade, int master)
        {
            var sale = new SalesItem(description, invoiceNum, units, pieces, grade, date, -1, master);

            AddSales(sale);
            return(sale);
        }
예제 #12
0
        private Sales CopyToSales(PayableBalance payableBalance)
        {
            Sales sales = new Sales();

            sales.Code          = payableBalance.SalesCode;
            sales.Date          = payableBalance.SalesDate;
            sales.CustomerId    = payableBalance.CustomerId;
            sales.SalesmanId    = payableBalance.SalesmanId;
            sales.PaymentMethod = payableBalance.PaymentMethod;
            sales.Status        = payableBalance.IsStatus;
            sales.Notes         = payableBalance.Notes;
            sales.GrandTotal    = payableBalance.GrandTotal;
            sales.AmountInWords = payableBalance.AmountInWords;
            sales.DueDate       = payableBalance.DueDate;
            sales.PrintCounter  = 0;
            sales.TermOfPayment = payableBalance.TermOfPayment;

            List <SalesItem> salesItems = new List <SalesItem>();

            foreach (var payableBalanceItem in payableBalance.PayableBalanceItems)
            {
                SalesItem si = new SalesItem();

                si.SalesId   = payableBalanceItem.PayableBalanceId;
                si.ProductId = payableBalanceItem.ProductId;
                si.Qty       = payableBalanceItem.Qty;
                si.Price     = payableBalanceItem.Price;

                salesItems.Add(si);
            }

            sales.SalesItems = salesItems;

            return(sales);
        }
예제 #13
0
        private SalesItem processSalesItem(string itemField)
        {
            try
            {
                string[] itens = itemField.Split(_fileImporterConfiguration.itemSeparator);

                if (itens.Length != 3)
                {
                    LoggerService.WriteLog(string.Format("Formato da linha de item da venda é inválido, linha ignorada. Item: {0}", itemField), LoggerService.LogType.alert);
                    return(null);
                }

                SalesItem saleItem = new SalesItem();
                saleItem.Id       = Convert.ToInt32(itens[0]);
                saleItem.Quantity = Convert.ToInt32(itens[1]);
                saleItem.Price    = Convert.ToDecimal(itens[2], new CultureInfo("en-US"));

                return(saleItem);
            }
            catch (Exception ex)
            {
                LoggerService.WriteLog(string.Format("Não foi possível processar o item da venda. Item: {0}", itemField), LoggerService.LogType.error, ex);
                return(null); //Retorna vendas vazia
            }
        }
예제 #14
0
파일: ListManager.cs 프로젝트: louisZYC/SDP
        public static void salesrecordBindsalesItemList(salesrecord salesrecord)
        {
            String           SQL;
            MySqlCommand     cmd;
            MySqlDataReader  myData;
            List <SalesItem> _salesItems = new List <SalesItem>();

            try
            {
                SQL    = "select productName, Quantity, discount,price from SalesItem where salesrecordID = '" + salesrecord.salesrecordID + "';";
                cmd    = new MySqlCommand(SQL, FormContainer.conn);
                myData = cmd.ExecuteReader();
                while (myData.Read())
                {
                    SalesItem si = new SalesItem {
                        productname = myData["productName"].ToString(),
                        amount      = Convert.ToInt32(myData["Quantity"]),
                        discount    = Convert.ToInt32(myData["discount"]),
                        price       = Convert.ToDecimal(myData["price"])
                    };
                    _salesItems.Add(si);
                }
                myData.Close();
                salesrecord._salesitems = _salesItems;
                _salesItems             = null;
            }
            catch (MySql.Data.MySqlClient.MySqlException ex)
            {
                MessageBox.Show("Error " + ex.Number + " : " + ex.Message);
            }
        }
예제 #15
0
        // GET: Invoice/Create
        public ActionResult Create()
        {
            SalesGeneral     sGeneral = new SalesGeneral();
            SalesHead        sh       = new SalesHead();
            List <SalesItem> sl       = new List <SalesItem>();
            SalesItem        si       = new SalesItem();

            si.itemNum = 10;

            sh.docDate = DateTime.Today;
            sl.Add(si);
            SalesItem si2 = new SalesItem();

            si2.itemNum = 20;
            sl.Add(si2);
            SalesItem si3 = new SalesItem();

            si3.itemNum = 30;
            sl.Add(si3);
            sh.city                = "İstanbul";
            sh.currency            = "TL";
            sh.country             = "TR";
            sh.docType             = "F1";
            sGeneral.salesHead     = sh;
            sGeneral.salesItemList = sl;
            fillViewBag();
            return(View(sGeneral));
        }
예제 #16
0
        public void AssertSalesItemHasSupplierCode()
        {
            SalesItem testItem     = new SalesItem();
            string    supplierCode = _gen.Finance.Iban();

            testItem.SupplierCode = supplierCode;
            Assert.AreEqual(supplierCode, testItem.SupplierCode);
        }
예제 #17
0
        public void AssertSalesItemHasName()
        {
            SalesItem testItem    = new SalesItem();
            string    productName = _gen.Commerce.ProductName();

            testItem.Name = productName;
            Assert.AreEqual(productName, testItem.Name);
        }
예제 #18
0
        public void ToStringTest()
        {
            SalesItem item = new SalesItem {
                Id = 1, Name = "pencil", Price = 4
            };

            Assert.AreEqual("1 pencil 4", item.ToString());
        }
예제 #19
0
        public void AssertSalesItemHasAmount()
        {
            SalesItem testItem = new SalesItem();
            int       amount   = new Random().Next(1, 100);

            testItem.Amount = amount;
            Assert.AreEqual(amount, testItem.Amount);
        }
예제 #20
0
        public void SalesItem_SalesItemRoundsValueToTwoDecimals()
        {
            var testItem = new SalesItem("test item", 13.372020m, 1, false, false);

            var decimalCount = BitConverter.GetBytes(decimal.GetBits(testItem.Price)[3])[2];

            Assert.IsTrue(decimalCount == 2);
        }
예제 #21
0
        public void AssertSalesItemHasPrice()
        {
            SalesItem testItem = new SalesItem();
            double    price    = double.Parse(_gen.Commerce.Price());

            testItem.Price = price;
            Assert.AreEqual(price, testItem.Price);
        }
예제 #22
0
        public void AssertSalesItemHasSOH()
        {
            SalesItem testItem = new SalesItem();
            uint      soh      = (uint)(new Random().Next(1, 100));

            testItem.StockOnHand = soh;
            Assert.AreEqual(soh, testItem.StockOnHand);
        }
예제 #23
0
        public ActionResult DeleteConfirmed(int id)
        {
            SalesItem salesItem = db.SalesItems.Find(id);

            db.SalesItems.Remove(salesItem);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
예제 #24
0
        private void RemoveSalesItem(SalesItem salesItem)
        {
            var item = Bill.SalesItem.First(r => r.ProductId == salesItem.ProductId);

            item.Quantity = 1;
            Bill.SalesItem.Remove(item);
            InitalizeBill();
        }
예제 #25
0
        private SapSalesOrder setSalesOrder()
        {
            SapSalesOrder        _SapSalesOrder = new SapSalesOrder();
            List <SalesItem>     _ItemList      = new List <SalesItem>();
            List <SalesPartner>  _PartnerList   = new List <SalesPartner>();
            List <SalesSchedule> _ScheduleList  = new List <SalesSchedule>();
            SalesHeader          _Header        = new SalesHeader();

            _Header.DOC_TYPE      = "ZOR3";
            _Header.SALES_ORG     = "1000";
            _Header.DISTR_CHAN    = "10";
            _Header.DIVISION      = "13";
            _Header.PURCH_NO_C    = "C#";
            _SapSalesOrder.Header = _Header;
            SalesItem _Item = new SalesItem();

            _Item.ITM_NUMBER = "000010";
            _Item.MATERIAL   = "12-04BFFB-SL7001";
            _Item.TARGET_QTY = "555";
            _ItemList.Add(_Item);
            SalesItem _Item2 = new SalesItem();

            _Item2.ITM_NUMBER = "000020";
            _Item2.MATERIAL   = "ADC-07PMMS-LS7001";
            _Item2.TARGET_QTY = "100";
            _ItemList.Add(_Item2);
            _SapSalesOrder.ItemList = _ItemList;
            SalesPartner _Partner = new SalesPartner();

            _Partner.PARTN_ROLE = "AG";
            _Partner.PARTN_NUMB = "0010000242";
            _PartnerList.Add(_Partner);
            _SapSalesOrder.PartnerList = _PartnerList;
            SalesSchedule _Schedule = new SalesSchedule();

            _Schedule.REQ_QTY    = "555";
            _Schedule.ITM_NUMBER = "000010";
            _Schedule.SCHED_LINE = "0001";
            _Schedule.REQ_DATE   = "20190920";
            _ScheduleList.Add(_Schedule);
            SalesSchedule _Schedule2 = new SalesSchedule();

            _Schedule2.REQ_QTY    = "50";
            _Schedule2.ITM_NUMBER = "000020";
            _Schedule2.SCHED_LINE = "0001";
            _Schedule2.REQ_DATE   = "20190923";
            _ScheduleList.Add(_Schedule2);
            SalesSchedule _Schedule3 = new SalesSchedule();

            _Schedule3.REQ_QTY    = "50";
            _Schedule3.ITM_NUMBER = "000020";
            _Schedule3.SCHED_LINE = "0002";
            _Schedule3.REQ_DATE   = "20190928";
            _ScheduleList.Add(_Schedule3);
            _SapSalesOrder.ScheduleList = _ScheduleList;

            return(_SapSalesOrder);
        }
        //Summary:
        // There are methods are created for support code on Programm cs
        public void AddNewSale(string code, int count)
        {
            List <Products> products = new List <Products>();

            List <SalesItem> items = new List <SalesItem>();

            double amount = 0;

            var product = _products.Where(p => p.ProductCode == code).FirstOrDefault();

            var saleItem = new SalesItem();

            var kod = code;

            bool checking = _products.Exists(p => p.ProductCode == code);

            if (checking == false)
            {
                Console.WriteLine("Product could not found");
            }
            else
            {
                saleItem.QuantityItemsOfSold = count;

                if (product.Quantity < count)
                {
                    Console.WriteLine("Has not enough quantity of product");
                }
                else
                {
                    product.Quantity -= count;

                    saleItem.ProductItemsOfSold = product;

                    saleItem.QuantityItemsOfSold = SalesItems.Count + 1;

                    SalesItems.Add(saleItem);

                    amount += count * saleItem.ProductItemsOfSold.ProductPrice;

                    var saleNo = _sales.Count + 1;

                    var saleDate = DateTime.Now;

                    var sale = new Sales();

                    sale.NumberOfSale = saleNo;

                    sale.AmmountOfSale = amount;

                    sale.DateOfSold = saleDate;

                    _sales.Add(sale);
                    Console.WriteLine("--------------- New sales is added ----------------");
                }
            }
        }
예제 #27
0
 /// <summary>
 /// Display the contents of the SalesItem
 /// </summary>
 /// <param name="item"></param>
 /// <param name="message"></param>
 private static void DisplaySalesItem(SalesItem item, String message)
 {
     Console.WriteLine("{0}:", message);
     Console.WriteLine("  ItemPrice     = {0:C}", item.ItemPrice);
     Console.WriteLine("  Quantity      = {0}", item.Quantity);
     Console.WriteLine("  OrderTotal    = {0:C}", item.OrderTotal);
     Console.WriteLine("  Shipping      = {0:C}", item.Shipping);
     Console.WriteLine("  IsNewCustomer = {0}", item.IsNewCustomer);
 }
예제 #28
0
        private void GetSalesDetailTransactionalData(SalesReportMasterModel MasterModel)
        {
            GlBL             BL   = new GlBL();
            List <SalesItem> list = new List <SalesItem>();

            MasterModel.SalesItems = list;
            DataSet ds = BL.PerformSearch();

            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                if (Convert.ToString(ds.Tables[0].Rows[i]["Customer_Number"]).GetType() != Type.GetType("System.DBNull"))
                {
                    {
                        SalesItem item = new SalesItem();
                        item.Amount          = Convert.ToString(ds.Tables[0].Rows[i]["Amount"]) == "" ? 0 : Convert.ToDouble(ds.Tables[0].Rows[i]["Amount"]);
                        item.Balance         = Convert.ToString(ds.Tables[0].Rows[i]["Balance"]);
                        item.customer_name   = Convert.ToString(ds.Tables[0].Rows[i]["customer_name"]);
                        item.customer_number = Convert.ToString(ds.Tables[0].Rows[i]["customer_number"]);

                        for (int k = 0; k < ds.Tables[1].Rows.Count; k++)
                        {
                            if (ds.Tables[0].Rows[i]["Customer_Name"].GetType() != Type.GetType("System.DBNull") && Convert.ToString(ds.Tables[0].Rows[i]["Customer_Name"]) != "Total" && Convert.ToString(ds.Tables[0].Rows[i]["Customer_Name"]) != "Cumulative Total")
                            {
                                if (Convert.ToString(ds.Tables[1].Rows[k]["Customer_Name"]) == Convert.ToString(ds.Tables[0].Rows[i]["Customer_Name"]))
                                {
                                    SalesTransactionalItem trans = new SalesTransactionalItem();
                                    trans.elt_account_number = Convert.ToString(ds.Tables[1].Rows[k]["elt_account_number"]);
                                    trans.Amount             = Convert.ToString(ds.Tables[1].Rows[k]["Amount"]) == "" ? 0 : Convert.ToDouble(ds.Tables[1].Rows[k]["Amount"]);

                                    trans.Balance         = Convert.ToString(ds.Tables[1].Rows[k]["Balance"]);
                                    trans.Customer_Name   = Convert.ToString(ds.Tables[1].Rows[k]["Customer_Name"]);
                                    trans.Customer_Number = Convert.ToString(ds.Tables[1].Rows[k]["Customer_Number"]);
                                    trans.air_ocean       = Convert.ToString(ds.Tables[1].Rows[k]["air_ocean"]);
                                    trans.Date            = Convert.ToString(ds.Tables[1].Rows[k]["Date"]);
                                    trans.Link            = Convert.ToString(ds.Tables[1].Rows[k]["Link"]);
                                    trans.Num             = Convert.ToString(ds.Tables[1].Rows[k]["Num"]);
                                    trans.Type            = Convert.ToString(ds.Tables[1].Rows[k]["Type"]);
                                    item.TransactionItems.Add(trans);
                                }
                            }
                            if (Convert.ToString(ds.Tables[0].Rows[i]["Customer_Name"]) == "Total")
                            {
                                MasterModel.Total = Convert.ToString(ds.Tables[1].Rows[k]["Amount"]);
                            }
                            if (Convert.ToString(ds.Tables[0].Rows[i]["Customer_Name"]) == "Cumulative Total")
                            {
                                MasterModel.Cumulative_Total = Convert.ToString(ds.Tables[1].Rows[k]["Amount"]);
                            }
                        }
                        if (item.Amount != 0)
                        {
                            list.Add(item);
                        }
                    }
                }
            }
        }
예제 #29
0
        public override void LabelKey(int labelKey)
        {
            System.Collections.Generic.List <IProduct> sList = new System.Collections.Generic.List <IProduct>();
            if (cr.DataConnector.CurrentSettings.GetProgramOption(Setting.DefineBarcodeLabelKeys) == PosConfiguration.ON)
            {
                sList = cr.DataConnector.SearchProductByBarcode(Label.GetLabel(labelKey));
            }
            else
            {
                sList = cr.DataConnector.SearchProductByLabel(Label.GetLabel(labelKey));
            }

            if (sList.Count == 0)
            {
                cr.State = AlertCashier.Instance(new Error(new ProductNotFoundException()));
                return;
            }

            // Check Printer Status before add label
            cr.Printer.CheckPrinterStatus();

            MenuList itemList = new MenuList();

            foreach (IProduct p in sList)
            {
                if (cr.Item is VoidItem)
                {
                    cr.Item = new SalesItem();
                }
                SalesItem si = (SalesItem)cr.Item.Clone();
                si.Product = p;
                if (p.Status == ProductStatus.Weighable && cr.Scale != null)
                {
                    try
                    {
                        si.Quantity = cr.Scale.GetWeight(p.UnitPrice);
                    }
                    catch (Exception) { }
                }
                itemList.Add(si);
            }

            if (itemList.Count == 1)
            {
                if (itemList.MoveNext())
                {
                    cr.Execute(((IDoubleEnumerator)itemList).Current);
                }
            }
            else
            {
                cr.State = ListLabel.Instance(itemList,
                                              new ProcessSelectedItem <IProduct>(cr.Execute),
                                              labelKey);
            }
        }
예제 #30
0
        public async Task <IHttpActionResult> GetSalesItem(int id)
        {
            SalesItem salesItem = await db.SalesItems.FindAsync(id);

            if (salesItem == null)
            {
                return(NotFound());
            }

            return(Ok(salesItem));
        }
예제 #31
0
 public bool UpdateStack(Products products, SalesItem salesItem)
 {
     query   = "UPDATE products SET stack=stack+@quantity WHERE id=@id";
     @params = new Dictionary <string, object>
     {
         { "@id", products.Id },
         { "@stack", products.Stack },
         { "@quantity", salesItem.Quantity }
     };
     return(base.Execute());
 }
        public ActionResult Edit(SalesItem salesItem)
        {
            var previous = db.SalesItem.Find(salesItem.Id);
            previous.Description = salesItem.Description;
            previous.Title = salesItem.Title;
            previous.Price = salesItem.Price;
            previous.Material = salesItem.Material;
            previous.Size = salesItem.Size;

            var cat = db.SalesCategories.First(x => x.Id == salesItem.SalesCategory.Id);

            previous.SalesCategory = cat;

            if (ModelState.IsValid)
            {
                db.Entry(previous).State = EntityState.Modified;
                db.SaveChanges();
                return RedirectToAction("Index");
            }
            return View(salesItem);
        }
예제 #33
0
        public ActionResult Upload()
        {
            var latestFile = new SalesItem();
            var vm = new ArtworkViewModel();

            for (int i = 0; i < Request.Files.Count; i++)
            {

                var existingBlobs = (List<ArtworkViewModel>)Session["uploads"] ?? new List<ArtworkViewModel>();

                var file = Request.Files[i];

                BinaryReader b = new BinaryReader(file.InputStream);
                byte[] binData = b.ReadBytes(file.ContentLength);

                var thumbnail =new byte[0];

                byte[] resizedImage;

                var size = ImageResizer.GetHeightAndWidth(binData);
                var orientation = ImageResizer.GetOrientation(binData);

                if (orientation == "landscape")
                {
                    thumbnail = ImageResizer.ResizeJpg(binData, 270, 200);

                }
                else
                {

                    thumbnail = ImageResizer.ResizeJpgFixedWidth(binData, 270);
                    thumbnail = ImageResizer.CropJpg(thumbnail, new Rectangle(0, 0, 270, 200));
                    //now crop

                }

                //need to make sure it's not too big
                if (size.Width > 1024)
                {
                    binData = ImageResizer.ResizeJpgFixedWidth(binData, 1024);
                }

                latestFile = new SalesItem
                {
                    FileName = file.FileName.Split('.')[0],
                    Extension = "." + file.FileName.Split('.')[1],
                    Bytes = binData,
                    ResizedBytes = thumbnail,
                    WhenCreated = DateTime.Now,
                    Orientation = orientation,
                    ForSale = true
                };

                Session["uploads"] = existingBlobs;

                if (Session["uploadsCount"] == null)
                {
                    Session["uploadsCount"] = 0;
                }
                else
                {
                    var existingCount = (int)Session["uploadsCount"];
                    Session["uploadsCount"] = existingCount++;
                }

                vm = new ArtworkViewModel
                {
                    SalesItem = latestFile,
                    Count = (int)Session["uploadsCount"]
                };

                existingBlobs.Add(vm);

                Session["uploads"] = existingBlobs;
            }

            return Json("Ok");
        }