public async Task<ActionResult> DownloadPrintForm(int id) { var order = await db.Orders .FirstAsync(o => o.Id == id); var tag = await db.Tags.OfType<EventTag>().Include(t => t.Event).Include("Event.Groups").FirstAsync(t => t.Orders.Any(o => o.Id == order.Id)); if (order.TimingSystemId.HasValue && tag.Event.TimingSystemId.HasValue) { var connector = new TrackMePro.PortalConnector(); return File(connector.GetOrderPrintForm(tag.Event.TimingSystemId.Value, order.TimingSystemId.Value), "application/pdf"); } return View("TimingNotConfigured"); }
public async Task<ActionResult> DownloadPrintForm(int id) { var accreditation = await db.Accreditations .Include(a=>a.Tag) .FirstAsync(o => o.Id == id); var eventTag = ((EventTag)accreditation.Tag); await db.Entry(eventTag).Reference(t => t.Event).LoadAsync(); if (accreditation.TimingSystemId.HasValue && eventTag.Event.TimingSystemId.HasValue) { var connector = new TrackMePro.PortalConnector(); return File(connector.GetAccreditationPrintForm(eventTag.Event.TimingSystemId.Value, accreditation.TimingSystemId.Value), "application/pdf"); } return View("TimingNotConfigured"); }
public async Task<ActionResult> GeneratePrintForms(int id) { var order = await db.Orders .Include(o=>o.Car) .Include(o=>o.CoDriver) .Include(o=>o.CoDriver.Licenses) .Include(o=>o.Driver) .Include(o=>o.Driver.Licenses) .Include(o=>o.Team) .Include(o=>o.Group) .FirstAsync(o => o.Id == id); var tag = await db.Tags.OfType<EventTag>().Include(t => t.Event).Include("Event.Groups").FirstAsync(t => t.Orders.Any(o => o.Id == order.Id)); if (tag.Event.TimingSystemId.HasValue) { var connector = new TrackMePro.PortalConnector(); var groups = connector.AvailableGroups(tag.Event.TimingSystemId.Value); var serverGroups = groups.Where(g => order.Group.Any(grp => grp.Title == g.Name)); var serverOrder = new TrackMePro.Entry(); serverOrder.Groups = serverGroups.ToArray(); serverOrder.EntryFeeToPay = 0; serverOrder.EntryFeeToPaid = 0; serverOrder.State = TrackMePro.EntryState.Preliminary; try { serverOrder.StartNumber = int.Parse(order.StartNumber); }catch { serverOrder.StartNumber = null; } if (order.Driver != null) { serverOrder.FirstName = order.Driver.FirstName; serverOrder.LastName = order.Driver.LastName; serverOrder.BirthDay = order.Driver.BirthDate; serverOrder.Address = order.Driver.Address; serverOrder.Email = order.Driver.Email; serverOrder.City = order.Driver.Location; serverOrder.Phone = order.Driver.Phone; serverOrder.Passport = order.Driver.Passport; if (order.Driver.Licenses.Any(l => l.Season == 2014 && l.Type == LicenseType.Driver)) { serverOrder.License = order.Driver.Licenses.OrderByDescending(l => l.IssuesOn).First(l => l.Season == 2014 && l.Type == LicenseType.Driver).Number; } } if (order.CoDriver != null) { serverOrder.CoDriverFirstName = order.CoDriver.FirstName; serverOrder.CoDriverLastName = order.CoDriver.LastName; serverOrder.CoDriverBirthDate = order.CoDriver.BirthDate; serverOrder.CoDriverAddress = order.CoDriver.Address; serverOrder.CoDriverEmail = order.CoDriver.Email; serverOrder.CoDriverCity = order.CoDriver.Location; serverOrder.CoDriverPhone = order.CoDriver.Phone; serverOrder.CoDriverPassport = order.CoDriver.Passport; if (order.CoDriver.Licenses.Any(l => l.Season == 2014 && l.Type == LicenseType.Driver)) { serverOrder.CoDriverLicense = order.CoDriver.Licenses.OrderByDescending(l => l.IssuesOn).First(l => l.Season == 2014 && l.Type == LicenseType.Driver).Number; } } if (order.Car != null) { serverOrder.Mark = order.Car.Mark; serverOrder.Model = order.Car.Model; serverOrder.RegistrationNumber = order.Car.RegistrationNumber; serverOrder.Engine = order.Car.Engine; } if (order.Team != null) { serverOrder.TeamPhone = order.Team.Phone; serverOrder.Team = order.Team.Name; serverOrder.TeamLicense = order.Team.License; serverOrder.TeamFax = order.Team.Fax; serverOrder.TeamEmail = order.Team.Email; serverOrder.TeamCity = order.Team.City; serverOrder.TeamAddress = order.Team.Address; } order.TimingSystemId = connector.RegisterOrder(tag.Event.TimingSystemId.Value, order.TimingSystemId, serverOrder); await db.SaveChangesAsync(); return RedirectToAction("DownloadPrintForm", new { id = id}); } return View("TimingNotConfigured"); }
public async Task<ActionResult> GeneratePrintForms(int id) { var accreditation = await db.Accreditations .Include(a=>a.User) .Include(a=>a.Media) .Include(a=>a.Tag) .FirstAsync(o => o.Id == id); var eventTag = ((EventTag)accreditation.Tag); await db.Entry(eventTag).Reference(t=>t.Event).LoadAsync(); if (eventTag.Event.TimingSystemId.HasValue) { var connector = new TrackMePro.PortalConnector(); var serverAccreditation = new TrackMePro.Accreditation(); serverAccreditation.Address = accreditation.User.Address; serverAccreditation.BirthDate = accreditation.User.BirthDate; serverAccreditation.Car = accreditation.Car; serverAccreditation.Email = accreditation.User.Email; serverAccreditation.FirstName = accreditation.User.FirstName; serverAccreditation.LastName = accreditation.User.LastName; serverAccreditation.Location = accreditation.User.Location; serverAccreditation.Passport = accreditation.User.Passport; serverAccreditation.Phone = accreditation.User.Phone; serverAccreditation.Id = accreditation.TimingSystemId.GetValueOrDefault(); serverAccreditation.Media = accreditation.Media.Select(m => new TrackMePro.MediaInfoEntry() { Edition = m.Edition, Email = m.Email, Fax = m.Fax, Frequency = m.Frequency, Media = m.Media, Organisation = m.Organisation, Phone = m.Phone, Position = m.Position, Region = m.Region, Type = ((TrackMePro.MediaType)(int)m.Type), Web = m.Web }).ToArray(); accreditation.TimingSystemId = connector.RegisterAccreditation(((EventTag)accreditation.Tag).Event.TimingSystemId.Value, accreditation.TimingSystemId, serverAccreditation); await db.SaveChangesAsync(); return RedirectToAction("DownloadPrintForm", new { id = id }); } return View("TimingNotConfigured"); }