public async Task GetServicesByVendor_ReturnsServicesOfVendor() { // arrange var vendor = new Vendor { id = 123, userName = "******", name = "name1", website = "website_1" }; var service = new VendorServices { vendorId = 123, flatFee = true, price = 20, serviceDescription = "desc", serviceName = "svcName", serviceType = "Venue" }; vendor.services = new List <VendorServices> { service }; _vendorServicesQueryMock.Setup(x => x.GetServicesByVendor(vendor.id.Value)) .Returns(Task.Factory.StartNew(() => vendor.services)); // act var task = await _sut.GetServicesByVendor(vendor.id.Value); // assert Assert.IsType <OkObjectResult>(task); var result = task as OkObjectResult; var usersResult = result.Value as List <VendorServices>; Assert.Equal(vendor.services, usersResult); }
public async Task Search_ReturnsServices() { // arrange var vendorSearchProp = new VendorSearchProperties { type = "Venue", maxPrice = 100 }; var service = new VendorServices { vendorId = 123, flatFee = true, price = 20, serviceDescription = "desc", serviceName = "svcName", serviceType = "Venue" }; List <VendorServices> services = new List <VendorServices> { service, service }; _vendorServicesQueryMock.Setup(x => x.Search(vendorSearchProp)) .Returns(Task.Factory.StartNew(() => services)); // act var task = await _sut.Search(vendorSearchProp); // assert Assert.IsType <OkObjectResult>(task); var result = task as OkObjectResult; var usersResult = result.Value as List <VendorServices>; Assert.Equal(services, usersResult); }
public async Task GetById_ReturnsVendorService() { // arrange var service = new VendorServices { id = 1, vendorId = 123, flatFee = true, price = 20, serviceDescription = "desc", serviceName = "svcName", serviceType = "Venue" }; _vendorServicesQueryMock.Setup(x => x.GetById(1)) .Returns(Task.Factory.StartNew(() => service)); // act var task = await _sut.GetServiceById(1); // assert Assert.IsType <OkObjectResult>(task); var result = task as OkObjectResult; var usersResult = result.Value as VendorServices; Assert.Equal(service, usersResult); }
public async Task PostReservationToVendor_Return202() { var reservation = new Reservation { id = 1, eventId = "1", vendorId = 1, vendorServiceId = 1, status = "New" }; var vendor = new Vendor { id = 1, userName = "******", name = "name1", website = "website_1" }; var service = new VendorServices { id = 1, vendorId = 1, flatFee = true, price = 20, serviceDescription = "desc", serviceName = "svcName", serviceType = "Venue" }; var emailMsg = new EmailMessage(); emailMsg.from = new source.Models.Email.EmailRecipient("*****@*****.**"); emailMsg.subject = "Unit Test"; List <EmailPersonalization> personalizations = new List <EmailPersonalization>(); EmailPersonalization personalization = new EmailPersonalization(); personalization.to.Add((new EmailRecipient("*****@*****.**"))); personalizations.Add(personalization); emailMsg.personalizations = personalizations; List <EmailContent> contents = new List <EmailContent>(); contents.Add(new EmailContent("text/plain", "unit content")); emailMsg.content = contents; _reservationQueryMock.Setup(x => x.GetById(It.IsAny <int>())) .Returns(Task.Factory.StartNew(() => reservation)); _vendorQueryMock.Setup(x => x.GetById(1)) .Returns(Task.Factory.StartNew(() => vendor)); _vendorServiceQueryMock.Setup(x => x.GetById(1)) .Returns(Task.Factory.StartNew(() => service)); _emailQueryMock.Setup(x => x.sendEmailViaPostAsync(emailMsg)) .Returns(Task.Factory.StartNew(() => HttpStatusCode.Accepted)); var task = await _emailController.PostReservationToVendor(1, emailMsg); // assert Assert.IsType <HttpStatusCode>(task); Assert.Equal(HttpStatusCode.Accepted, task); }
public async Task GetById_ReturnsNotFound() { //arrange VendorServices service = null; _vendorServicesQueryMock.Setup(x => x.GetById(1)) .Returns(Task.Factory.StartNew(() => service)); var task = await _sut.GetServiceById(1); // assert Assert.IsType <NotFoundResult>(task); }
/// <summary> /// Inserts vendor service /// </summary> /// <param name="service">Vendor service</param> /// <returns>Saved vendor service</returns> public async Task InsertService(VendorServices service) { using (var db = _database) { var connection = db.Connection as MySqlConnection; await connection.OpenAsync(); string query = @"INSERT INTO occasions.vendorServices (vendorId, serviceType, serviceName, serviceDescription, flatFee, price, unitsAvailable, googleId, active) " + @"VALUES (@vendorId, @serviceType, @serviceName, @serviceDescription, @flatFee, @price, @unitsAvailable, @googleId, 1); "; var addedService = await connection.ExecuteAsync(query, service); } }
VendorService PrepareVendorService(string[] parts, Vendor vendor) { var currentVendorService = new VendorService(); try { currentVendorService.VendorId = vendor.VendorId; currentVendorService.Id = parts[2]; currentVendorService.Number = parts[4]; currentVendorService.Name = parts[5]; currentVendorService.AccountLabel = parts[6]; currentVendorService.FormatInput = parts[7]; currentVendorService.CommissionPercent = string.IsNullOrEmpty(parts[8]) ? 0 : Decimal.Parse(parts[8].Replace(".", CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator) .Replace(",", CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator)); currentVendorService.NdsPercent = string.IsNullOrEmpty(parts[9]) ? 0 : Decimal.Parse(parts[9].Replace(".", CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator) .Replace(",", CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator)); currentVendorService.MinimalAmountComission = string.IsNullOrEmpty(parts[10]) ? 0 : Decimal.Parse(parts[10].Replace(".", CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator) .Replace(",", CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator)); VendorServices.Add(currentVendorService); } catch (Exception e) { throw; } for (var i = 13; i < parts.Length; i++) { if (parts[i].StartsWith(counterHeader)) { var counterParts = parts[i].Split(delimiterL3); currentVendorService.Counters.Add(PrepareCounter(counterParts, currentVendorService.Id)); } } for (var i = 13; i < parts.Length; i++) { if (parts[i].StartsWith(addInfoHeader)) { var addInfoParts = parts[i].Split(delimiterL3); currentVendorService.AddInfos.Add(PrepareAddInfo(addInfoParts, currentVendorService.Id)); } } return(currentVendorService); }
public async Task UpdateServiceType_ThrowsException() { //arrange var exception = new Exception(); VendorServices service = new VendorServices { serviceType = "Venue", serviceName = "Test" }; //act _vendorServicesQueryMock.Setup(x => x.UpdateService(service)) .Throws(exception); var task = await _sut.Update(service); // assert Assert.IsType <BadRequestResult>(task); }
public async Task <IActionResult> GetServiceById(int id) { try { VendorServices service = await _vendorServicesQuery.GetById(id); if (service == null) { return(new NotFoundResult()); } return(new OkObjectResult(service)); } catch (Exception ex) { await _logger.LogError(HttpContext.User, ex); return(new BadRequestResult()); } }
public async Task <IActionResult> Update([FromBody] VendorServices service) { try { VendorServices newService = await _vendorServicesQuery.UpdateService(service); if (newService == null) { return(new NotFoundResult()); } return(new OkObjectResult(newService)); } catch (Exception ex) { await _logger.LogError(HttpContext.User, ex); return(new BadRequestResult()); } }
public async Task <IActionResult> Insert([FromBody] VendorServices service) { try { if (service == null) { return(new UnprocessableEntityResult()); } await _vendorServicesQuery.InsertService(service); return(new OkObjectResult(true)); } catch (Exception ex) { await _logger.LogError(HttpContext.User, ex); return(new BadRequestResult()); } }
public async Task DeactivateService_ReturnsTrue() { // arrange var service = new VendorServices { id = 123 }; _vendorServicesQueryMock.Setup(x => x.DeactivateByServiceId(It.IsAny <int>())) .Returns(Task.Factory.StartNew(() => true)); // act var task = await _sut.Delete(service.id.Value); // assert Assert.IsType <OkObjectResult>(task); var result = task as OkObjectResult; var usersResult = result.Value as bool?; Assert.True(usersResult); }
public async Task GetVendorsByService_ReturnsVendorsWithService() { // arrange var vendor = new Vendor { id = 123, userName = "******", name = "name1", website = "website_1" }; var service = new VendorServices { vendorId = 123, flatFee = true, price = 20, serviceDescription = "desc", serviceName = "svcName", serviceType = "Venue" }; vendor.services = new List <VendorServices> { service }; var vendors = new List <Vendor> { vendor, vendor, vendor }; _vendorServicesQueryMock.Setup(x => x.GetVendorsByServiceTypes("Venue")) .Returns(Task.Factory.StartNew(() => vendors)); // act var task = await _sut.GetVendorsByServiceType("Venue"); // assert Assert.IsType <OkObjectResult>(task); var result = task as OkObjectResult; var usersResult = result.Value as List <Vendor>; Assert.Equal(vendors[2].id, usersResult[2].id); Assert.Equal("Venue", usersResult[0].services.FirstOrDefault().serviceType); }
/// <summary> /// Updates vendor service /// </summary> /// <param name="service">Updated vendor service</param> /// <returns>Saved vendor service</returns> public async Task <VendorServices> UpdateService(VendorServices service) { try { using (var db = _database) { var connection = db.Connection as MySqlConnection; await connection.OpenAsync(); string query = @"UPDATE occasions.vendorServices " + @"SET serviceType = @serviceType, serviceName = @serviceName, serviceDescription = @serviceDescription, " + @"flatFee = @flatFee, price = @price, unitsAvailable = @unitsAvailable " + @"WHERE vendorId = @vendorId AND id = @id; " + @"SELECT * FROM occasions.vendorServices WHERE id = @id;"; var updatedService = connection.QueryFirstAsync <VendorServices>(query, service).Result; return(updatedService); } } catch (Exception ex) { return(null); } }
public async Task <HttpStatusCode> PostReservationToVendor(int reservationId, [FromBody] EmailMessage emailMsg) { // retrieve reservation via reservationId Reservation reservation = await _reservationQuery.GetById(reservationId); // check if reservation is returned if (reservation == null) { return(HttpStatusCode.NotFound); } int vendorId = reservation.vendorId ?? default(int); Vendor vendor = await _vendorQuery.GetById(vendorId); if (vendor == null) { return(HttpStatusCode.NotFound); } int vendorServiceId = reservation.vendorServiceId ?? default(int); VendorServices vendorService = await _vendorServiceQuery.GetById(vendorServiceId); if (vendorService == null) { return(HttpStatusCode.NotFound); } Boolean isSuccessful = true; // create to list and set List <EmailPersonalization> personalizations = new List <EmailPersonalization>(); List <EmailRecipient> emailTos = new List <EmailRecipient>(); List <EmailContent> emailContents = new List <EmailContent>(); EmailPersonalization personalization = new EmailPersonalization(); emailTos.Add(new EmailRecipient(vendor.name, vendor.userName)); personalization.to = emailTos; personalizations.Add(personalization); emailMsg.personalizations = personalizations; // Update Content String hostname = _emailQuery.getBaseUrlForEmail(HttpContext); EmailContent emailContent = new EmailContent(); emailContent.type = "text/html"; StringBuilder htmlBuilder = new StringBuilder(); htmlBuilder.AppendLine("<div>").Append("Hello, ").Append(vendor.name).Append(". You have a requested reservation for the "); htmlBuilder.Append(vendorService.serviceName).Append(" waiting for you via Occasions.</div>"); htmlBuilder.AppendLine("Please click ").Append("<a href='").Append(hostname).Append("/reservations-vendor'>here</a>").Append(" to view it."); emailContent.value = htmlBuilder.ToString(); Console.WriteLine(htmlBuilder.ToString()); emailContents.Add(emailContent); emailMsg.content = emailContents; Task <HttpStatusCode> response = _emailQuery.sendEmailViaPostAsync(emailMsg); if (response.Result.Equals(HttpStatusCode.Accepted)) { Console.WriteLine("Successfully sent email to " + vendor.userName); } else { isSuccessful = false; Console.WriteLine("Error sending email to " + vendor.userName); } if (isSuccessful) { return(HttpStatusCode.Accepted); } else { return(HttpStatusCode.BadRequest); } }
public VendorsController(VendorServices crewServices) { this.crewServices = crewServices; }