public async Task WhenProviderIdIsProvidedAndIsValid_TheStatusOfTheExistingRequestIsUpdated() { string pid = "someId"; var request = new Request { ProviderId = pid, Status = RequestStatus.Assigned }; var command = new AddRequestCommand { Request = request }; var options = this.CreateNewContextOptions(); using (var context = new AllReadyContext(options)) { context.Requests.Add(new Request { ProviderId = pid, Status = RequestStatus.Assigned }); await context.SaveChangesAsync(); } using (var context = new AllReadyContext(options)) { var geocoder = new Mock <IGeocoder>(); AddRequestCommandHandler sut = new AddRequestCommandHandler(context, geocoder.Object); await sut.Handle(command); } using (var context = new AllReadyContext(options)) { var entity = context.Requests.FirstOrDefault(x => x.ProviderId == pid); Assert.Equal(entity.Status, RequestStatus.Assigned); } }
public async Task WhenProviderIdIsProvidedAndIsValid_TheStatusIsTheSameAsTheRequestAndIdIsTheSame() { string pid = "someId"; Guid rid = Guid.NewGuid(); var request = new Request { ProviderId = pid, Status = RequestStatus.Assigned }; var command = new AddRequestCommand { Request = request }; Request returnedRequest = new Request { ProviderId = pid, RequestId = rid, Status = RequestStatus.UnAssigned }; _dataAccess.Setup(x => x.GetRequestByProviderIdAsync(pid)).ReturnsAsync(returnedRequest); await _sut.Handle(command); Assert.Equal(rid, returnedRequest.RequestId); Assert.Equal(RequestStatus.Assigned, returnedRequest.Status); }
public async Task WhenProviderIdIsProvidedAndIsValid_TheStatusOfTheExistingRequestIsUpdated() { string pid = "someId"; var request = new Request { ProviderId = pid, Status = RequestStatus.Assigned }; var command = new AddRequestCommand{Request = request}; var options = this.CreateNewContextOptions(); using (var context = new AllReadyContext(options)) { context.Requests.Add(new Request { ProviderId = pid, Status = RequestStatus.Assigned }); await context.SaveChangesAsync(); } using (var context = new AllReadyContext(options)) { var geocoder = new Mock<IGeocoder>(); AddRequestCommandHandler sut = new AddRequestCommandHandler(context, geocoder.Object); await sut.Handle(command); } using (var context = new AllReadyContext(options)) { var entity = context.Requests.FirstOrDefault(x => x.ProviderId == pid); Assert.Equal(entity.Status, RequestStatus.Assigned); } }
public async Task <IActionResult> AddRequest(string tmdbid) { var requests = await _context.Request.ToListAsync(); var currentUser = await _userManager.GetUserAsync(User); var movie = await _mediator.Send(new GetSingleMovieRequest { TmdbId = tmdbid }); if (await _context.Request.Where(x => x.UserId == currentUser.Id && x.MovieId == tmdbid).CountAsync() > 0) { return(RedirectToAction("Show", "Movie", new { slug = movie.Movie.TitleSlug })); } var command = new AddRequestCommand { Request = new UserRequest() { Status = false, MovieId = tmdbid, UserId = currentUser.Id } }; await _mediator.Send(command); return(RedirectToAction("Show", "Movie", new { slug = movie.Movie.TitleSlug })); }
public RequestForQuoteToolBarViewModel(IOptionRequestParser optionRequestParser, IClientManager clientManager, IBookManager bookManager) { AddNewRequestCommand = new AddRequestCommand(this); ClearNewRequestCommand = new ClearNewRequestCommand(this); GetTodaysRequestsCommand = new GetTodaysRequestsCommand(this); this.optionRequestParser = optionRequestParser; this.clientManager = clientManager; this.bookManager = bookManager; InitializeCollections(); InitializeEventSubscriptions(); }
public async Task WhenNoProviderIdIsProvided_TheStatusIsUnassignedAndIdIsNotNull() { var request = new Request(); var command = new AddRequestCommand { Request = request }; var result = await _sut.Handle(command); Assert.NotNull(request.RequestId); Assert.Equal(RequestStatus.UnAssigned, request.Status); }
public async Task WhenNoProviderIdIsProvided_TheStatusIsUnassignedAndIdIsNotNull() { var request = new Request(); var command = new AddRequestCommand {Request = request}; var geocoder = new Mock<IGeocoder>(); AddRequestCommandHandler sut = new AddRequestCommandHandler(this.Context, geocoder.Object); var result = await sut.Handle(command); Assert.NotNull(request.RequestId); Assert.Equal(RequestStatus.Unassigned, request.Status); }
public async Task HandleReturnsNullWhenNoErrorsOccur() { var command = new AddRequestCommand { Request = new Request {ProviderId = "successId"} }; var geocoder = new Mock<IGeocoder>(); AddRequestCommandHandler sut = new AddRequestCommandHandler(this.Context, geocoder.Object); var result = await sut.Handle(command); Assert.Null(result); }
public async Task HandleReturnsNullWhenNoErrorsOccur() { var command = new AddRequestCommand { Request = new Request { ProviderId = "successId" } }; var result = await _sut.Handle(command); Assert.Null(result); }
public async Task WhenNoProviderIdIsProvided_TheStatusIsUnassignedAndIdIsNotNull() { var request = new Request(); var command = new AddRequestCommand { Request = request }; var geocoder = new Mock <IGeocoder>(); AddRequestCommandHandler sut = new AddRequestCommandHandler(this.Context, geocoder.Object); var result = await sut.Handle(command); Assert.NotNull(request.RequestId); Assert.Equal(RequestStatus.Unassigned, request.Status); }
public async Task HandleReturnsNullWhenNoErrorsOccur() { var command = new AddRequestCommand { Request = new Request { ProviderId = "successId" } }; var geocoder = new Mock <IGeocoder>(); AddRequestCommandHandler sut = new AddRequestCommandHandler(this.Context, geocoder.Object); var result = await sut.Handle(command); Assert.Null(result); }
public async Task AddRequestTest() { // Arrange var command = new AddRequestCommand { Request = new Domain.UserRequest { Id = 2, MovieId = "577922", UserId = "bacbb67d-819e-4e7b-bb29-c81ff99b5d1d" } }; var handler = new AddRequestHandler(_mediaDbContext); // Act var response = await handler.Handle(command, new System.Threading.CancellationToken()); // Assert var fetchedRequest = _mediaDbContext.Request.First(); Assert.IsNotNull(fetchedRequest); }
public async Task <ICollection <LdapPacket> > Execute(AddRequestCommand addRequestCommand) { var addRequest = addRequestCommand.ProtocolOperation.Operation as AddRequest; var dn = addRequest.Entry.Value; var objectClassAttributes = addRequest.Attributes.Values.Where(v => v.Type.Value == _options.ObjectClassAttributeName); if (!objectClassAttributes.Any()) { throw new LdapException(string.Format(Global.AttributeIsMissing, _options.ObjectClassAttributeName), LDAPResultCodes.Other, dn); } var existingRepresentation = await _ldapQueryStore.Get(dn); if (existingRepresentation != null) { throw new LdapException(string.Format(Global.EntryAlreadyExists, dn), LDAPResultCodes.EntryAlreadyExists, dn); } var parentDN = dn.ExtractParentDN(); var parentRepresentation = await _ldapQueryStore.Get(parentDN); if (parentRepresentation == null) { throw new LdapException(string.Format(Global.ParentDoesntExist, parentDN), LDAPResultCodes.NoSuchObject, parentDN); } var existingObjectClasses = await _ldapQueryStore.GetByAttributes(objectClassAttributes.Select(attr => new KeyValuePair <string, string>(_options.NameAttributeName, attr.Vals.Values.First().Value)).ToList()); var mustAttributeTypes = existingObjectClasses.SelectMany(obj => obj.Attributes.Where(attr => attr.Name == _options.MustAttributeName)); var mayAttributeTypes = existingObjectClasses.SelectMany(obj => obj.Attributes.Where(attr => attr.Name == _options.MayAttributeName)); var attributeTypes = new List <string>(); attributeTypes.AddRange(mustAttributeTypes.SelectMany(m => m.Values)); attributeTypes.AddRange(mayAttributeTypes.SelectMany(m => m.Values)); var existingObjectClassNames = existingObjectClasses.Select(entry => entry.Attributes.First(attr => attr.Name == _options.NameAttributeName).Values.First()); var unknownObjectClasses = objectClassAttributes.Where(obj => !existingObjectClassNames.Contains(obj.Vals.Values.First().Value)).Select(kvp => kvp.Vals.Values.First().Value); if (unknownObjectClasses.Any()) { throw new LdapException(string.Format(Global.UnknownObjectClasses, string.Join(",", unknownObjectClasses)), LDAPResultCodes.Other, dn); } var missingRequiredAttributes = mustAttributeTypes.Where(attr => !addRequest.Attributes.Values.Any(a => attr.Values.Contains(a.Type.Value))); if (missingRequiredAttributes.Any()) { throw new LdapException(string.Format(Global.RequiredAttributeMissing, string.Join(",", missingRequiredAttributes.SelectMany(m => m.Values))), LDAPResultCodes.Other, dn); } var undefinedAttributes = addRequest.Attributes.Values.Where(attr => !attributeTypes.Any(d => d.Equals(attr.Type.Value, StringComparison.InvariantCultureIgnoreCase))); if (undefinedAttributes.Any()) { throw new LdapException(string.Format(Global.AttributesUndefined, string.Join(",", undefinedAttributes.Select(a => a.Type.Value))), LDAPResultCodes.Other, dn); } var record = new LDAPEntry { DistinguishedName = dn, Attributes = new List <LDAPEntryAttribute>() }; var attributes = await _ldapQueryStore.GetByAttributes(attributeTypes.Select(attr => new KeyValuePair <string, string>(_options.NameAttributeName, attr)).ToList()); foreach (var attr in addRequest.Attributes.Values) { var attribute = attributes.First(a => a.Attributes.Any(at => at.Name == _options.NameAttributeName && at.Values.Contains(attr.Type.Value))); CheckSyntax(attribute, attr, dn); var existingAttributes = addRequest.Attributes.Values.Where(a => a.Type.Value == attr.Type.Value); if (IsSingleValue(attribute) && existingAttributes.Count() > 1) { throw new LdapException(string.Format(Global.SingleValue, attr.Type.Value), LDAPResultCodes.AttributeOrValueExists, dn); } record.Attributes.Add(new LDAPEntryAttribute { Id = Guid.NewGuid().ToString(), Name = attr.Type.Value, Values = attr.Vals.Values.Select(v => v.Value).ToList() }); } _ldapCommandStore.Add(record); await _ldapCommandStore.SaveChanges(); var donePacket = new LdapPacket { MessageId = addRequestCommand.MessageId, ProtocolOperation = new DERProtocolOperation { Operation = new AddResponse { Result = new LDAPResult { MatchedDN = addRequest.Entry, ResultCode = new DEREnumerated <LDAPResultCodes> { Value = LDAPResultCodes.Success }, DiagnosticMessage = new DEROctetString(string.Empty) } } } }; return(new List <LdapPacket> { donePacket }); }
public async Task AddRequest(AddRequestCommand command, CancellationToken cancellationToken) { await _mediator.Send(command, cancellationToken); }