public async Task <IActionResult> DeleteShipOwner([FromRoute] int id) { repo.Delete(await repo.GetByIdToDelete(id)); return(StatusCode(200, new { response = ApiMessages.RecordDeleted() })); }
public IActionResult DeleteRangeSchedule([FromBody] List <ScheduleDeleteRangeDto> schedules) { repo.DeleteRange(schedules); return(StatusCode(200, new { response = ApiMessages.RecordDeleted() })); }
public IActionResult AssignToShip(int shipId, [FromQuery(Name = "id")] string[] ids) { reservationRepo.AssignToShip(shipId, ids); return(StatusCode(200, new { response = ApiMessages.RecordUpdated() })); }
public async Task <IActionResult> Register([FromBody] RegisterViewModel formData) { if (ModelState.IsValid) { var user = new UserExtended { UserName = formData.UserName, Displayname = formData.Displayname, CustomerId = formData.CustomerId, Email = formData.Email, IsAdmin = formData.IsAdmin, IsActive = formData.IsActive, EmailConfirmed = true, SecurityStamp = Guid.NewGuid().ToString() }; var result = await userManager.CreateAsync(user, formData.Password); if (result.Succeeded) { await userManager.AddToRoleAsync(user, user.IsAdmin? "Admin" : "User"); return(StatusCode(200, new { response = ApiMessages.RecordCreated() })); } else { return(StatusCode(492, new { response = result.Errors.Select(x => x.Description) })); } } return(StatusCode(400, new { response = ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage) })); }
public IActionResult SendToEmail([FromBody] VoucherEmail voucher) { if (ModelState.IsValid) { try { var response = emailSender.SendVoucher(voucher).Message; if (response == "OK") { return(StatusCode(200, new { response = ApiMessages.EmailInstructions() })); } else { throw new Exception(response); } } catch (Exception) { return(StatusCode(493, new { response = ApiMessages.EmailNotSent() })); } } return(StatusCode(400, new { response = ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage) })); }
private IActionResult GetErrorMessage(int errorCode) { return(errorCode switch { 450 => StatusCode(450, new { response = ApiMessages.FKNotFoundOrInactive("Destination Id") }), 451 => StatusCode(451, new { response = ApiMessages.FKNotFoundOrInactive("Port Id") }), _ => StatusCode(490, new { Response = ApiMessages.RecordNotSaved() }), });
public async Task <IActionResult> GetUser(string id) { UserExtended record = await userManager.Users .Include(x => x.Customer) .DefaultIfEmpty() .SingleOrDefaultAsync(x => x.Id == id); if (record == null) { return(StatusCode(404, new { response = ApiMessages.RecordNotFound() })); } UserReadResource vm = new() { Id = record.Id, UserName = record.UserName, Displayname = record.Displayname, Customer = new SimpleResource { Id = (record.Customer?.Id) ?? 0, Description = (record.Customer?.Description) ?? "(EMPTY)" }, Email = record.Email, IsAdmin = record.IsAdmin, IsActive = record.IsActive }; return(StatusCode(200, vm)); }
public async Task <IActionResult> PostCustomerAsync([FromBody] CustomerWriteResource record) { repo.Create(mapper.Map <CustomerWriteResource, Customer>(await AttachUserIdToRecord(record))); return(StatusCode(200, new { response = ApiMessages.RecordCreated() })); }
public async Task <IActionResult> DeleteReservation([FromRoute] string id) { reservationRepo.Delete(await reservationRepo.GetByIdToDelete(id)); return(StatusCode(200, new { response = ApiMessages.RecordDeleted() })); }
public async Task <IActionResult> Create([FromBody] Voucher voucher) { using var stringWriter = new StringWriter(); voucher.Logo = Logo.GetLogo(); voucher.BarCode = "data:image/png;base64," + Convert.ToBase64String(QrCodeCreator.CreateQrCode(voucher.TicketNo)); voucher.ValidPassengerIcon = IconToDisplay(voucher.TotalPersons, voucher.Passengers.Count); voucher.Facebook = Facebook.GetLogo(); voucher.YouTube = YouTube.GetLogo(); voucher.Instagram = Instagram.GetLogo(); var viewResult = compositeViewEngine.FindView(ControllerContext, "Voucher", false); var viewDictionary = new ViewDataDictionary(new EmptyModelMetadataProvider(), new ModelStateDictionary()) { Model = voucher }; var viewContext = new ViewContext(ControllerContext, viewResult.View, viewDictionary, TempData, stringWriter, new HtmlHelperOptions()); var htmlToPdf = new HtmlToPdf(1000, 1414); await viewResult.View.RenderAsync(viewContext); var pdf = htmlToPdf.ConvertHtmlString(stringWriter.ToString()); var pdfBytes = pdf.Save(); if (!Directory.Exists("Vouchers")) { Directory.CreateDirectory("Vouchers"); } using (var streamWriter = new StreamWriter("Vouchers\\Voucher" + voucher.TicketNo + ".pdf")) { await streamWriter.BaseStream.WriteAsync(pdfBytes.AsMemory(0, pdfBytes.Length)); } return(StatusCode(200, new { response = ApiMessages.FileCreated() })); }
public async Task <IActionResult> PutShipOwnerAsync([FromBody] ShipOwnerWriteResource record) { repo.Update(mapper.Map <ShipOwnerWriteResource, ShipOwner>(await AttachUserIdToRecord(record))); return(StatusCode(200, new { response = ApiMessages.RecordUpdated() })); }
private static void LogInvalidModel(Object record, ILogger logger, ControllerContext context) { logger.LogError("{caller} {error} {record}", GetControllerAndActionName(context), GetSimpleDescription(ApiMessages.InvalidModel()), GetObjectProperties(record)); }
private IActionResult GetErrorMessage(int errorCode) { return(errorCode switch { 450 => StatusCode(450, new { Response = ApiMessages.FKNotFoundOrInactive("Gender") }), 451 => StatusCode(451, new { Response = ApiMessages.FKNotFoundOrInactive("Nationality") }), 452 => StatusCode(452, new { Response = ApiMessages.FKNotFoundOrInactive("Ship") }), _ => StatusCode(490, new { Response = ApiMessages.RecordNotSaved() }), });
public async Task <IActionResult> DeleteUser(string id) { await userManager.DeleteAsync(await userManager.FindByIdAsync(id)); return(StatusCode(200, new { response = ApiMessages.RecordDeleted() })); }
public ScheduleValidator() { // FKs RuleFor(x => x.PortId).NotEmpty(); RuleFor(x => x.DestinationId).NotEmpty(); // Fields RuleFor(x => x.Date).Must(DateHelpers.BeCorrectFormat).WithMessage(ApiMessages.DateHasWrongFormat()); RuleFor(x => x.MaxPassengers).InclusiveBetween(0, 999).WithMessage(ApiMessages.InvalidMaxPassengers()); }
public CrewValidator() { RuleFor(x => x.GenderId).NotEmpty(); RuleFor(x => x.NationalityId).NotEmpty(); RuleFor(x => x.ShipId).NotEmpty(); RuleFor(x => x.Lastname).NotEmpty().MaximumLength(128); RuleFor(x => x.Firstname).NotEmpty().MaximumLength(128); RuleFor(x => x.Birthdate).Must(DateHelpers.BeCorrectFormat).WithMessage(ApiMessages.DateHasWrongFormat()); }
public async Task <IActionResult> PatchPickupPoint([FromQuery(Name = "id")] int id, [FromQuery(Name = "coordinates")] string coordinates) { await repo.GetById(id); repo.UpdateCoordinates(id, coordinates); return(StatusCode(200, new { response = ApiMessages.RecordUpdated() })); }
public async Task <IActionResult> Auth([FromBody] TokenRequest model) { return(model.GrantType switch { "password" => await GenerateNewToken(model), "refresh_token" => await RefreshToken(model), _ => StatusCode(401, new { response = ApiMessages.AuthenticationFailed() }), });
public ShipRouteValidator() { RuleFor(x => x.Description).NotEmpty().MaximumLength(128); RuleFor(x => x.FromPort).NotEmpty().MaximumLength(128); RuleFor(x => x.FromTime).Must(TimeHelpers.BeValidTime).WithMessage(ApiMessages.InvalidShipRouteFromTime()); RuleFor(x => x.ViaPort).MaximumLength(128); RuleFor(x => x.ViaTime).Must(TimeHelpers.BeEmptyOrValidTime).WithMessage(ApiMessages.InvalidShipRouteViaTime()); RuleFor(x => x.ToPort).NotEmpty().MaximumLength(128); RuleFor(x => x.ToTime).Must(TimeHelpers.BeValidTime).WithMessage(ApiMessages.InvalidShipRouteToTime()); }
public IActionResult SendLoginCredentials([FromBody] LoginCredentialsViewModel model) { string baseUrl = $"{Request.Scheme}://{Request.Host.Value}{Request.PathBase.Value}"; string loginLink = Url.Content($"{baseUrl}/login"); var result = emailSender.SendLoginCredentials(model, loginLink); if (result.Successful) { return(StatusCode(200, new { response = ApiMessages.EmailInstructions() })); } return(StatusCode(496, new { response = ApiMessages.EmailNotSent() })); }
public IActionResult EmbarkAllPassengers([FromQuery] int[] id) { if (repo.EmbarkAllPassengers(id)) { return(StatusCode(200, new { response = ApiMessages.RecordUpdated() })); } else { return(StatusCode(404, new { response = ApiMessages.RecordNotFound() })); } }
public IActionResult EmbarkSinglePassenger(int id) { if (repo.EmbarkSinglePassenger(id)) { return(StatusCode(200, new { response = ApiMessages.RecordUpdated() })); } else { return(StatusCode(404, new { response = ApiMessages.RecordNotFound() })); } }
public async Task <T> GetById(int id) { var record = await context.Set <T>().FindAsync(id); if (record != null) { return(record); } else { throw new RecordNotFound(ApiMessages.RecordNotFound()); } }
public new async Task <PickupPoint> GetById(int id) { var record = await context.Set <PickupPoint>() .Include(x => x.CoachRoute) .SingleOrDefaultAsync(x => x.Id == id); if (record != null) { return(record); } else { throw new RecordNotFound(ApiMessages.RecordNotFound()); } }
public async Task <IActionResult> GetById(string id) { var record = await reservationRepo.GetById(id); if (await Identity.IsUserAdmin(httpContext) || await reservationRepo.DoesUserOwnRecord(record.Customer.Id)) { return(StatusCode(200, record)); } else { return(StatusCode(490, new { response = ApiMessages.NotOwnRecord() })); } }
public new async Task <ShipReadResource> GetById(int id) { var record = await context.Ships .Include(x => x.ShipOwner) .SingleOrDefaultAsync(x => x.Id == id); if (record != null) { return(mapper.Map <Ship, ShipReadResource>(record)); } else { throw new RecordNotFound(ApiMessages.RecordNotFound()); } }
public new async Task <CoachRouteReadDto> GetById(int id) { CoachRoute record = await context.CoachRoutes .Include(x => x.Port) .SingleOrDefaultAsync(m => m.Id == id); if (record != null) { return(mapper.Map <CoachRoute, CoachRouteReadDto>(record)); } else { throw new RecordNotFound(ApiMessages.RecordNotFound()); } }
new public async Task <ScheduleReadDto> GetById(int scheduleId) { var record = await context.Set <Schedule>() .Include(p => p.Port) .Include(p => p.Destination) .SingleOrDefaultAsync(m => m.Id == scheduleId); if (record != null) { return(mapper.Map <Schedule, ScheduleReadDto>(record)); } else { throw new RecordNotFound(ApiMessages.RecordNotFound()); } }
public async Task <IActionResult> PutAsync([FromBody] CrewWriteResource record) { var response = repo.IsValid(record); if (response == 200) { repo.Update(mapper.Map <CrewWriteResource, Crew>(await AttachUserIdToRecord(AttachOccupantIdToRecord(record)))); return(StatusCode(200, new { response = ApiMessages.RecordUpdated() })); } else { return(GetErrorMessage(response)); } }
public async Task <IActionResult> PutRouteAsync([FromBody] CoachRouteWriteDto record) { var response = repo.IsValid(record); if (response == 200) { repo.Update(mapper.Map <CoachRouteWriteDto, CoachRoute>(await AttachUserIdToRecord(record))); return(StatusCode(200, new { response = ApiMessages.RecordUpdated() })); } else { return(GetErrorMessage(response)); } }