[Fact] // 2. string GetPublicId(int id) public async void GetPublicId_shouldReturnImagePublicId() { // Arrange var imageUrl = Guid.NewGuid().ToString(); var imagePublicId = Guid.NewGuid().ToString(); var image = new CloudImage { PictureUrl = imageUrl, PicturePublicId = imagePublicId, }; await this.Context.CloudImages.AddAsync(image); await this.Context.SaveChangesAsync(); var service = new ImageDbService(this.Context); // Act var result = service.GetPublicId(image.Id); var expected = await this.Context.CloudImages .Where(i => i.PicturePublicId == imagePublicId) .Select(i => i.Id) .FirstOrDefaultAsync(); // Assert result.Should().Equals(expected); }
private void LoadEcr3Tickets(List <OrderLine> orderLines) { //get all Ecr barcodes var barcodes = ImageDbService.GetOrderEcrBarcodes(_order.OrderNumber); //make sure we have some barcodes if (barcodes == null || barcodes.Count < 1) { Log("Barcodes failed to retrieve for ordernumber: " + _order.OrderNumber); return; } //group orderlines by barcode images foreach (var barcode in barcodes.ToList()) { //get corresponding orderlines *** when u save ticket id in barcodes, get our ticketid from ecr productuid var tempOrderLines = orderLines.Where(x => x.TicketId != null && x.TicketId.Value.ToString().Equals(barcode.TicketId, StringComparison.CurrentCultureIgnoreCase)); if (!tempOrderLines.Any()) { continue; } var ticket = TicketService.GetTicketById(barcode.TicketId); var topOrderLine = tempOrderLines.FirstOrDefault(); if (topOrderLine == null) { continue; } var microsite = SiteService.GetMicroSiteById(topOrderLine.MicrositeId); var imageData = ImageDbService.GetImageMetaData(barcode.ImageId); LoadEcr3Ticket(tempOrderLines.ToList(), ticket, microsite, imageData); //var attractionMetaData = ticket.ImageMetaDataId != null // ? ImageDbService.GetMetaData(ticket.ImageMetaDataId.Value.ToString()) // : null; // MainList.Add( // new VoucherTicket // { // UseQrCode = true, // OrderLines = tempOrderLines.ToList(), // Ticket = ticket, // AttractionImageData = attractionMetaData, // ImageData = ImageDbService.GetImageMetaData(barcode.ImageId), // ValidTicketName = validTicketName // } // ); } //PopulateVoucherTickets(); }
private void LoadAttractionsForEcr1(List <OrderLine> attractionOrderLines) { // group these orderlines by ticketid var ticketGroups = from detail in attractionOrderLines group detail by detail.TicketId into ticketGroup orderby ticketGroup.Key select ticketGroup; //loog through all ticket groups and make vouchers foreach (var ticketgroup in ticketGroups) { var ticketId = ticketgroup.Key.Value.ToString(); var ticketOrderlines = attractionOrderLines.Where(x => x.TicketId.Value.ToString().Equals(ticketId, StringComparison.CurrentCultureIgnoreCase) ); //since they all have the same ticket lest get the first one to work with var topOrderLine = ticketOrderlines.FirstOrDefault(); //get corresponding site data var orderLineData = _orderlineData.FirstOrDefault(x => x.OrderLineId.Equals(topOrderLine.Id.ToString(), StringComparison.CurrentCultureIgnoreCase)); //only generate qr code if site supports qr code if (orderLineData.UseQrCode) { //make the qr image var filePath = MakeAttractionQrCode(_order, ticketOrderlines.ToList(), ticketId); //*** use file path and create the Voucher. var ticket = TicketService.GetTicketById(ticketId); var validTicketName = ticket.Name.ToLower().Contains(orderLineData.MicrositeName) ? ticket.Name : string.Concat(orderLineData.MicrositeName, " ", ticket.Name); var attractionMetaData = ticket.ImageMetaDataId != null ? ImageDbService.GetMetaData(ticket.ImageMetaDataId.Value.ToString()) : null; MainList.Add( new VoucherTicket { UseQrCode = true, OrderLines = ticketOrderlines.ToList(), Ticket = ticket, AttractionImageData = attractionMetaData, ValidTicketName = validTicketName, QrCodeImageUrl = filePath } ); } } }
[Fact] // 1. async Task<int> WriteToDatabasebAsync(string imageUrl, string imagePublicId) public async void WriteToDatabasebAsync_ShouldReturn_ImageId() { // Arrange var imageUrl = Guid.NewGuid().ToString(); var imagePublicId = Guid.NewGuid().ToString(); var service = new ImageDbService(this.Context); // Act var result = await service.WriteToDatabasebAsync(imageUrl, imagePublicId); var expected = await this.Context.CloudImages .Where(i => i.PicturePublicId == imagePublicId) .Select(i => i.Id) .FirstOrDefaultAsync(); // Assert result.Should().Equals(expected); }
public void SaveBarcodes(BookingResponse response, Order order) { try { var barcodes = response.Barcodes; foreach (var barcode in barcodes) { var chartUrl = string.Format(GoogleChartUrl, barcode.BarcodeAsText); var imageBytes = ImageService.DownloadImageFromUrl(chartUrl); var ticket = TicketService.GetTicketByProductDimensionUid(barcode.BarcodeDetails[0].ProductDimensionUID); var imageSaveStatus = ImageDbService.GenerateQrImage(order.OrderNumber, ticket.Id.ToString(), imageBytes, MicrositeId); } //***also check for ecr1 if there is order ascurl and save old qrcode if (!string.IsNullOrEmpty(order.CentinelAcsurl)) { var chartUrl = string.Format(GoogleChartUrl, order.CentinelAcsurl); var imageBytes = ImageService.DownloadImageFromUrl(chartUrl); var imageSaveStatus = ImageDbService.GenerateQrImage(order.OrderNumber, imageBytes, MicrositeId); if (imageSaveStatus != QrImageSaveStatus.Success && imageSaveStatus != QrImageSaveStatus.ImageDataExist) { Log("Image create failed for order " + order.OrderNumber); } } } catch (Exception ex) { Log("SaveBarcodes() Failed Ordernumber: " + order.OrderNumber + System.Environment.NewLine + ex.Message); } }
public VoucherTicket LoadVoucherTicketWithQrcode(Order order, List <OrderLine> orderLines, Ticket ticket, MicroSite microsite) { var validTicketName = ticket.Name.ToLower().Contains(microsite.Name.ToLower()) ? ticket.Name : string.Concat(microsite.Name, " ", ticket.Name); var attractionMetaData = ticket.ImageMetaDataId != null ? ImageDbService.GetMetaData(ticket.ImageMetaDataId.Value.ToString()) : null; var qrCodeImageData = GetOrderImageMetaData(order); return (new VoucherTicket { UseQrCode = true, OrderLines = orderLines, Ticket = ticket, AttractionImageData = attractionMetaData, ImageData = qrCodeImageData, ValidTicketName = validTicketName }); }
public virtual void ProcessRequest(HttpContext context) { #region path structure var width = 0; var height = 0; var square = 0; var keepRatio = false; var imageid = context.Request.QueryString["imageid"]; var imageExtension = context.Request.QueryString["extension"]; var microsite = context.Request.QueryString["micrositeid"]; var rootFolder = ConfigurationManager.AppSettings["BarCodeDir"]; try { if (!string.IsNullOrWhiteSpace(context.Request.QueryString["w"])) { width = Convert.ToInt32(context.Request.QueryString["w"]); } if (!string.IsNullOrWhiteSpace(context.Request.QueryString["h"])) { height = Convert.ToInt32(context.Request.QueryString["h"]); } if (!string.IsNullOrWhiteSpace(context.Request.QueryString["r"])) { keepRatio = true; } if (!string.IsNullOrWhiteSpace(context.Request.QueryString["s"])) { square = Convert.ToInt32(context.Request.QueryString["s"]); } if (width > 2000) { width = 0; } if (height > 2000) { height = 0; } if (square > 2000) { square = 0; } } catch { //ignore } var findPath = string.Format("~{0}{1}/{2}", rootFolder, microsite, imageid + "." + imageExtension); var fi = new FileInfo(context.Server.MapPath(findPath)); #endregion #region response type (hidden cause its rubbish and i want to redo later) if (imageExtension.Equals("jpg", StringComparison.CurrentCultureIgnoreCase)) { context.Response.ContentType = "image/jpeg"; } else if (imageExtension.Equals("png", StringComparison.CurrentCultureIgnoreCase)) { context.Response.ContentType = "image/png"; } else if (imageExtension.Equals("gif", StringComparison.CurrentCultureIgnoreCase)) { context.Response.ContentType = "image/gif"; } #endregion context.Response.Cache.SetCacheability(HttpCacheability.Public); context.Response.Cache.SetMaxAge(new TimeSpan(7, 0, 0, 0)); context.Response.BufferOutput = false; if (!fi.Exists) { //get it! if (imageid != null) { var image = ImageDbService.RetrieveImageOnThefly(imageid); var stream = new System.IO.MemoryStream(image.Data); var newstream = new MemoryStream(); try { //save locally var di = Directory.CreateDirectory(fi.DirectoryName); System.Drawing.Image i = System.Drawing.Image.FromStream(stream); System.Drawing.Image newi = null; if (width > 0 && height > 0 && (width != i.Width || height != i.Height)) { if (keepRatio) { newi = ImageService.ScaleImageToFixedSize(i, new System.Drawing.Size(width, height)); } else { newi = ImageService.ResizeImage(i, new System.Drawing.Size(width, height)); } newi.Save(newstream, i.RawFormat); } else if (width > 0 && width != i.Width) { newi = ImageService.ScaleImageToWidth(i, width); newi.Save(newstream, i.RawFormat); } else if (height > 0 && height != i.Height) { newi = ImageService.ScaleImageToHeight(i, height); newi.Save(newstream, i.RawFormat); } else if (square > 0) { if (i.Width >= i.Height) { newi = ImageService.ScaleImageToHeight(i, square); } else { newi = ImageService.ScaleImageToWidth(i, square); } int cx = (newi.Width / 2) - (square / 2); int cy = (newi.Height / 2) - (square / 2); newi = ImageService.CropImage(newi, cx, cy, square, square); newi.Save(newstream, i.RawFormat); } else { newi = i; newstream = stream; } newi.Save(fi.FullName, i.RawFormat); newi.Dispose(); i.Dispose(); } catch { //ignore } if (newstream != null) { newstream.Position = 0; const int buffersize = 1024 * 16; byte[] buffer = new byte[buffersize]; int count = newstream.Read(buffer, 0, buffersize); while (count > 0) { context.Response.OutputStream.Write(buffer, 0, count); count = newstream.Read(buffer, 0, buffersize); } newstream.Close(); newstream.Dispose(); } stream.Close(); stream.Dispose(); } } else { //send it ! context.Response.WriteFile(context.Server.MapPath(findPath)); } context.Response.End(); }
private void LoadEcr3Tickets(List <OrderLine> orderLines) { _attractionCount = orderLines.Count(a => a.TicketTorA.Equals("attraction", StringComparison.CurrentCultureIgnoreCase)); //get all Ecr barcodes var barcodes = ImageDbService.GetOrderEcrBarcodes(_order.OrderNumber); //make sure we have some barcodes if (barcodes == null || barcodes.Count < 1) { Log("Barcodes failed to retrieve for ordernumber: " + _order.OrderNumber); return; } //group orderlines by barcode images foreach (var barcode in barcodes.ToList()) { //get corresponding orderlines *** when u save ticket id in barcodes, get our ticketid from ecr productuid var tempOrderLines = orderLines.Where(x => x.TicketId != null && x.TicketId.Value.ToString().Equals(barcode.TicketId, StringComparison.CurrentCultureIgnoreCase)); if (!tempOrderLines.Any()) { continue; } var ticket = TicketService.GetTicketById(barcode.TicketId); var topOrderLine = tempOrderLines.FirstOrDefault(); if (topOrderLine == null) { continue; } var microsite = SiteService.GetMicroSiteById(topOrderLine.MicrositeId); var validTicketName = ticket.Name.ToLower().Contains(microsite.Name.ToLower()) ? ticket.Name : string.Concat(microsite.Name, " ", ticket.Name); var voucherTicket = new VoucherTicket { UseQrCode = true, OrderLines = tempOrderLines.ToList(), Ticket = ticket, ImageData = ImageDbService.GetImageMetaData(barcode.ImageId), ValidTicketName = validTicketName }; //only load ticket image if we have an attraction if (ticket.IsAttraction) { voucherTicket.AttractionImageData = ticket.ImageMetaDataId != null ? ImageDbService.GetMetaData(ticket.ImageMetaDataId.Value.ToString()) : null; } } //PopulateVoucherTickets(); }
public ImageMetaData GetOrderImageMetaData(Order order) { return(ImageDbService.GetImageMetaDataByName(string.Format(Services.Implementation.ImageDbService.QrImageNameFormat, order.OrderNumber, "Ecr"))); }