Ejemplo n.º 1
0
        public void CreateImagesForOtherColor(int campaignId, string prodIdAndColor, CampaignProductRecord p,
                                              DesignInfo data, string frontPath, string backPath, string color)
        {
            var destForder = Path.Combine(Server.MapPath("/Media/campaigns/"), campaignId.ToString(), prodIdAndColor);

            if (!Directory.Exists(destForder))
            {
                Directory.CreateDirectory(destForder);
            }

            if (!Directory.Exists(destForder + "/normal"))
            {
                Directory.CreateDirectory(destForder + "/normal");
            }
            if (!Directory.Exists(destForder + "/big"))
            {
                Directory.CreateDirectory(destForder + "/big");
            }

            var frontTemplate = new Bitmap(frontPath);
            var backTemplate  = new Bitmap(backPath);

            var rgba = ColorTranslator.FromHtml(color);

            var front = BuildProductImage(frontTemplate, _imageHelper.Base64ToBitmap(data.Front), rgba,
                                          p.ProductRecord.ProductImageRecord.Width, p.ProductRecord.ProductImageRecord.Height,
                                          p.ProductRecord.ProductImageRecord.PrintableFrontTop,
                                          p.ProductRecord.ProductImageRecord.PrintableFrontLeft,
                                          p.ProductRecord.ProductImageRecord.PrintableFrontWidth,
                                          p.ProductRecord.ProductImageRecord.PrintableFrontHeight);

            front.Save(Path.Combine(destForder, "normal", "front.png"));

            var back = BuildProductImage(backTemplate, _imageHelper.Base64ToBitmap(data.Back), rgba,
                                         p.ProductRecord.ProductImageRecord.Width, p.ProductRecord.ProductImageRecord.Height,
                                         p.ProductRecord.ProductImageRecord.PrintableBackTop,
                                         p.ProductRecord.ProductImageRecord.PrintableBackLeft,
                                         p.ProductRecord.ProductImageRecord.PrintableBackWidth,
                                         p.ProductRecord.ProductImageRecord.PrintableBackHeight);

            back.Save(Path.Combine(destForder, "normal", "back.png"));

            _imageHelper.ResizeImage(front, p.ProductRecord.ProductImageRecord.Width * 2, p.ProductRecord.ProductImageRecord.Height * 2).Save(Path.Combine(destForder, "big", "front.png"));
            _imageHelper.ResizeImage(back, p.ProductRecord.ProductImageRecord.Width * 2, p.ProductRecord.ProductImageRecord.Height * 2).Save(Path.Combine(destForder, "big", "back.png"));

            frontTemplate.Dispose();
            backTemplate.Dispose();
            front.Dispose();
            back.Dispose();
        }
Ejemplo n.º 2
0
        public ActionResult Index2(int?page_id, int?page_size, int?filterCurrencyId, int?status, int?paymentStatus, PagerParameters pagerParameters)
        {
            var orders = _orderService.GetAllOrders()
                         .Where(item => item.IsActive && item.Email != null && item.Products.Count > 0);

            if (status.HasValue)
            {
                orders = orders.Where(aa => aa.OrderStatusRecord.Id == status.Value);
            }

            if (filterCurrencyId.HasValue)
            {
                var filterCurrency = _currencyRepository.Get(filterCurrencyId.Value);
                orders = orders.Where(o => o.CurrencyRecord == filterCurrency);
            }

            if (paymentStatus.HasValue)
            {
                if (paymentStatus.Value != -1)
                {
                    orders = orders.Where(aa => ((paymentStatus.Value == 0) ? aa.ProfitPaid : !aa.ProfitPaid));
                }
            }
            var orderEntities = new AdminOrderViewModel();

            foreach (var item in orders)
            {
                CampaignProductRecord campRec = null;
                campRec = item.Products.First().CampaignProductRecord;

                //if (item.Products == null || item.Products.Count() == 0 || ()== null) continue;
                var campaignId = campRec.CampaignRecord_Id;
                if (campaignId == null)
                {
                    continue;
                }

                var campaign = _campaignService.GetCampaignById(campaignId);

                try
                {
                    var seller = _contentManager.Query <UserPart, UserPartRecord>()
                                 .Where(user => user.Id == campaign.TeeyootUserId)
                                 .List()
                                 .First();
                    double orderProfit = 0;

                    foreach (var product in item.Products)
                    {
                        var prof = product.CampaignProductRecord.Price - product.CampaignProductRecord.BaseCost;
                        foreach (var size in product.CampaignProductRecord.ProductRecord.SizesAvailable)
                        {
                            if (size.Id == product.ProductSizeRecord.Id)
                            {
                                prof = prof - size.SizeCost;
                            }
                        }
                        orderProfit = orderProfit + (prof * product.Count);
                        orderProfit = Math.Round(orderProfit, 2);
                    }


                    //if (string.IsNullOrWhiteSpace(searchString) || campaign.Title.ToLower().Contains(searchString.ToLower()))
                    //{
                    orderEntities.Orders.Add(new AdminOrder
                    {
                        PublicId       = item.OrderPublicId,
                        Products       = item.Products,
                        Status         = item.OrderStatusRecord.Name,
                        EmailBuyer     = item.Email,
                        CampaignId     = campaign.Id,
                        CampaignName   = campaign.Title,
                        CampaignAlias  = campaign.Alias,
                        Id             = item.Id,
                        Profit         = orderProfit,
                        SellerId       = seller != null ? seller.Id : 0,
                        Payout         = item.ProfitPaid,
                        CreateDate     = item.Created,
                        UserNameSeller = seller != null ? seller.UserName : "",
                        Currency       = item.CurrencyRecord.ShortName
                    });
                    //}
                }
                catch (Exception ex)
                {
                    Logger.Error(ex, campaign.TeeyootUserId + "  ERROOORRRRRRRRRRRR ");
                    throw;
                }
            }
            //var qwe = new List<SelectListItem>();

            //var entriesProjection = orderEntities.Orders.Select(e =>
            //{
            //    return Shape.FaqEntry(
            //        PublicId: e.PublicId,
            //        Products: e.Products,
            //        Status: e.Status,
            //        EmailBuyer: e.EmailBuyer,
            //        Id: e.Id,
            //        Profit: e.Profit,
            //        UserNameSeller: e.UserNameSeller,
            //        Payout: e.Payout,
            //        CampaignId: e.CampaignId,
            //        CampaignName: e.CampaignName,
            //        CampaignAlias: e.CampaignAlias,
            //        SellerId: e.SellerId,
            //        CreateDate: e.CreateDate.ToString("dd/MM/yyyy")
            //        );
            //});
            //var pager = new Pager(_siteService.GetSiteSettings(), pagerParameters.Page, pagerParameters.PageSize);

            //var pagerShape = Shape.Pager(pager).TotalItemCount(entriesProjection.Count());
            var orderStatuses = _orderStatusRepository.Table
                                .Select(s => new OrderStatusItemViewModel
            {
                Id   = s.Id,
                Name = s.Name
            })
                                .ToList();

            var currencies = _currencyRepository.Table
                             .Select(c => new CurrencyItemViewModel
            {
                Id   = c.Id,
                Name = c.ShortName
            });

            return(View("Index2", new AdminOrderViewModel
            {
                DynamicOrders = orderEntities.Orders.ToArray(),
                OrderStatuses = orderStatuses,
                SelectedCurrencyFilterId = filterCurrencyId,
                Currencies = currencies
            }));
        }