public async Task SearchOrganisationBySearchParamsReturnsOrganisationsInTheSortOrderSpecified()
        {
            var session = EntityHelpers.CreateSession("Admin");

            DatabaseContext.Sessions.Add(session);
            Client.DefaultRequestHeaders.Add("Cookie", $"access_token={session.Payload}");
            var rand          = new Random();
            var organisations = EntityHelpers.CreateOrganisations(10).ToList();
            var searchParam   = Randomm.Word();
            var first         = rand.Next(10, 20);
            var second        = rand.Next(20, 30);

            organisations[5].Name = searchParam + first;
            organisations[3].Name = searchParam + second;
            DatabaseContext.Organisations.AddRange(organisations);
            DatabaseContext.SaveChanges();
            var requestUri = new Uri($"api/v1/organisations?search={searchParam}&sort=name&direction=asc", UriKind.Relative);
            var response   = await Client.GetAsync(requestUri).ConfigureAwait(true);

            response.StatusCode.Should().Be(200);
            var content        = response.Content;
            var stringResponse = await content.ReadAsStringAsync().ConfigureAwait(true);

            var deserializedBody = JsonConvert.DeserializeObject <OrganisationResponseList>(stringResponse);

            deserializedBody.Should().NotBeNull();
            deserializedBody.Organisations[0].Name.Should().BeEquivalentTo(organisations[5].Name);
            deserializedBody.Organisations[1].Name.Should().BeEquivalentTo(organisations[3].Name);
        }
Exemplo n.º 2
0
        public async Task GivenRequestWithFilterParameterWhenGetTaxonomiesEndpointIsCalledThenItReturnsOnlyFilteredTaxonomies()
        {
            // arrange
            var vocabularyFP = Randomm.Create <string>();

            var taxonomies = EntityHelpers.CreateTaxonomies(5).ToList();

            taxonomies[1].Vocabulary = vocabularyFP;
            taxonomies[3].Vocabulary = vocabularyFP;
            DatabaseContext.Taxonomies.AddRange(taxonomies);
            DatabaseContext.SaveChanges();

            // act
            var requestUri = new Uri($"api/v1/taxonomies?vocabulary={vocabularyFP}", UriKind.Relative);
            var response   = Client.GetAsync(requestUri).Result;

            var content        = response.Content;
            var stringResponse = await content.ReadAsStringAsync().ConfigureAwait(true);

            var deserializedBody = JsonConvert.DeserializeObject <TaxonomyResponseList>(stringResponse);

            // assert
            response.StatusCode.Should().Be(200);
            deserializedBody.Taxonomies.Count.Should().Be(2);
        }
Exemplo n.º 3
0
 private User CreateUser()
 {
     _user       = EntityHelpers.CreateUser();
     _userDomain = _usersGateway.AddUser(_mapper.ToDomain(_user));
     _user       = _mapper.FromDomain(_userDomain);
     return(_user);
 }
Exemplo n.º 4
0
 private Organisation CreateOrganisation()
 {
     _organisation       = EntityHelpers.CreateOrganisation();
     _organisationDomain = _organisationsGateway.CreateOrganisation(_organisation);
     _organisation       = _mapper.FromDomain(_organisationDomain);
     return(_organisation);
 }
Exemplo n.º 5
0
 public void GivenInvalidOrganisationIdOnCreateExceptionWillBeThrown()
 {
     _organisation    = EntityHelpers.CreateOrganisation();
     _organisation.Id = 999999999;
     _classUnderTest.Invoking(c => c.LinkUserToOrganisation(_organisation.Id, CreateUser().Id))
     .Should()
     .Throw <Exception>();
 }
        private async Task <TableResult> HandleUpsertAsync(TableOperation operation, CloudTableClient client, CloudTable table, TableRequestOptions options, OperationContext context)
        {
            Document document = EntityHelpers.GetDocumentFromEntity(operation.Entity, context, options);
            ResourceResponse <Document> response = await client.DocumentClient.UpsertDocumentAsync(table.GetCollectionUri(), document);

            context.RequestResults.Add(response.ToRequestResult());
            return(this.GetTableResultFromResponse(operation, response, context, options));
        }
Exemplo n.º 7
0
        public async Task SearchServicesReturnServicesAccordingToRankIfMatched()
        {
            var searchWord1    = Randomm.Word();
            var searchWord2    = Randomm.Word();
            var irrelevantWord = Randomm.Word();
            var bridgeSyn1Word = Utility.SuperSetOfString(searchWord1);
            var bridgeSyn2Word = Utility.SuperSetOfString(searchWord2);
            var synWord1       = Randomm.Word();
            var synWord2       = Randomm.Word();
            var synWord3       = Randomm.Word();
            var synonymGroup1  = EntityHelpers.CreateSynonymGroupWithWords();
            var synonymGroup2  = EntityHelpers.CreateSynonymGroupWithWords();
            var dummySynGroup  = EntityHelpers.CreateSynonymGroupWithWords();
            var bridgeSynonym1 = EntityHelpers.SynWord(synonymGroup1, bridgeSyn1Word);
            var bridgeSynonym2 = EntityHelpers.SynWord(synonymGroup2, bridgeSyn2Word);
            var matchSynonym1  = EntityHelpers.SynWord(synonymGroup1, synWord1);
            var matchSynonym2  = EntityHelpers.SynWord(synonymGroup1, synWord2);
            var matchSynonym3  = EntityHelpers.SynWord(synonymGroup2, synWord3);

            synonymGroup1.SynonymWords.Add(bridgeSynonym1);
            synonymGroup2.SynonymWords.Add(bridgeSynonym2);
            synonymGroup1.SynonymWords.Add(matchSynonym1);
            synonymGroup1.SynonymWords.Add(matchSynonym2);
            synonymGroup2.SynonymWords.Add(matchSynonym3);
            var services      = EntityHelpers.CreateServices(5);
            var matchService1 = EntityHelpers.CreateService();
            var matchService2 = EntityHelpers.CreateService();
            var matchService3 = EntityHelpers.CreateService();
            var matchService4 = EntityHelpers.CreateService();

            matchService1.Name += searchWord2;
            //matchService2.Description += synWord2;
            matchService2.Description += " " + synWord2; //15 Feb 2021 - Change made so we only search for whole words in the service description! - So we add a space.

            matchService3.Organization.Name += synWord3;
            matchService4.Organization.Name += searchWord1;
            services.AddMany(matchService1, matchService2, matchService3, matchService4);
            DatabaseContext.SynonymGroups.AddRange(synonymGroup1);
            DatabaseContext.SynonymGroups.AddRange(synonymGroup2);
            DatabaseContext.SynonymGroups.AddRange(dummySynGroup);
            DatabaseContext.Services.AddRange(services);
            DatabaseContext.SaveChanges();

            var requestUri = new Uri($"api/v1/services?search={searchWord1} {searchWord2} {irrelevantWord}", UriKind.Relative);
            var response   = Client.GetAsync(requestUri).Result;

            response.StatusCode.Should().Be(200);
            var content       = response.Content;
            var stringContent = await content.ReadAsStringAsync().ConfigureAwait(false);

            var deserializedBody = JsonConvert.DeserializeObject <GetServiceResponseList>(stringContent);

            deserializedBody.Services.Count.Should().Be(4);
            deserializedBody.Services[0].Name.Should().Be(matchService4.Name);
            deserializedBody.Services[1].Name.Should().Be(matchService1.Name);
            deserializedBody.Services[2].Name.Should().Be(matchService3.Name);
            deserializedBody.Services[3].Name.Should().Be(matchService2.Name);
        }
        public async Task <ActionResult> AssignTechAsync(IssueVM model)
        {
            try
            {
                var issue = new IssueRepo().GetById(model.IssueId);
                issue.TechnicianId = model.TechnicianId;
                issue.IssueState   = Models.Enums.IssueStates.Atandı;
                issue.OptReport    = model.OptReport;
                new IssueRepo().Update(issue);
                var technician = await NewUserStore().FindByIdAsync(issue.TechnicianId);

                TempData["Message"] =
                    $"{issue.Description} adlı arızaya {technician.Name}  {technician.Surname} teknisyeni atandı.";

                var customer     = NewUserManager().FindById(issue.CustomerId);
                var emailService = new EmailService();
                var body         = $"Merhaba <b>{GetNameSurname(issue.CustomerId)}</b><br>{issue.Description} adlı arızanız onaylanmıştır ve görevli teknisyen en kısa sürede yola çıkacaktır.";
                await emailService.SendAsync(new IdentityMessage()
                {
                    Body    = body,
                    Subject = $"{issue.Description} adlı arıza hk."
                }, customer.Email);

                var issueLog = new IssueLog()
                {
                    IssueId     = issue.Id,
                    Description = "Teknisyene atandı.",
                    FromWhom    = "Operatör"
                };
                new IssueLogRepo().Insert(issueLog);

                return(RedirectToAction("AllIssues", "Operator"));
            }
            catch (DbEntityValidationException ex)
            {
                TempData["Message"] = new ErrorVM()
                {
                    Text           = $"Bir hata oluştu: {EntityHelpers.ValidationMessage(ex)}",
                    ActionName     = "AssignTechAsync",
                    ControllerName = "Operator",
                    ErrorCode      = 500
                };
                return(RedirectToAction("Error500", "Home"));
            }
            catch (Exception ex)
            {
                TempData["Message"] = new ErrorVM()
                {
                    Text           = $"Bir hata oluştu {ex.Message}",
                    ActionName     = "AssignTechAsync",
                    ControllerName = "Operator",
                    ErrorCode      = 500
                };
                return(RedirectToAction("Error500", "Home"));
            }
        }
Exemplo n.º 9
0
        public void ImageDeleteActionCallsServicesGateway()
        {
            var serviceId = Randomm.Id();
            var imageId   = Randomm.Id();
            var file      = EntityHelpers.CreateFile();

            _mockServicesGateway.Setup(sg => sg.GetFile(It.IsAny <int>())).ReturnsAsync(file);
            _classUnderTest.ExecuteDelete(serviceId, imageId);
            _mockServicesGateway.Verify(sg => sg.DeleteFileInfo(It.IsAny <int>(), It.IsAny <File>()), Times.Once);
        }
        public void GetTaxonomiesReturnsTaxonomies() // all
        {
            var entity = EntityHelpers.CreateTaxonomy();

            DatabaseContext.Taxonomies.Add(entity);
            DatabaseContext.SaveChanges();
            var response = _classUnderTest.GetTaxonomies(null).ToList();

            response.First().Name.Should().Be(entity.Name);
        }
Exemplo n.º 11
0
        public void CanGetARoleEntity()
        {
            var role = EntityHelpers.CreateRole();

            DatabaseContext.Add(role);
            DatabaseContext.SaveChanges();
            var result = DatabaseContext.Roles.FirstOrDefault(x => x.Id == role.Id);

            result.Should().BeEquivalentTo(role);
        }
Exemplo n.º 12
0
        public void CanCreateAnAnalyticsEventEntity()
        {
            var analyticsEvent = EntityHelpers.CreateAnalyticsEvent();

            DatabaseContext.Add(analyticsEvent);
            DatabaseContext.SaveChanges();
            var result = DatabaseContext.ServiceAnalytics.ToList().FirstOrDefault();

            result.Should().BeEquivalentTo(analyticsEvent);
        }
Exemplo n.º 13
0
        public void CanGetAUserOrganizationEntity()
        {
            var userOrganization = EntityHelpers.CreateUserOrganization();

            DatabaseContext.Add(userOrganization);
            DatabaseContext.SaveChanges();
            var result = DatabaseContext.UserOrganizations.ToList().FirstOrDefault();

            result.Should().BeEquivalentTo(userOrganization);
        }
Exemplo n.º 14
0
        public void CanGetATaxonomyEntity()
        {
            var taxonomy = EntityHelpers.CreateTaxonomy();

            DatabaseContext.Add(taxonomy);
            DatabaseContext.SaveChanges();
            var result = DatabaseContext.Taxonomies.ToList().FirstOrDefault();

            result.Should().BeEquivalentTo(taxonomy);
        }
Exemplo n.º 15
0
        public void CanGetASynonymGroupEntity()
        {
            var synonymGroup = EntityHelpers.CreateSynonymGroup();

            DatabaseContext.Add(synonymGroup);
            DatabaseContext.SaveChanges();
            var result = DatabaseContext.SynonymGroups.FirstOrDefault(x => x.Id == synonymGroup.Id);

            result.Should().BeEquivalentTo(synonymGroup);
        }
Exemplo n.º 16
0
        public void CanGetAServiceLocationEntity()
        {
            var serviceLocation = EntityHelpers.CreateServiceLocation();

            DatabaseContext.Add(serviceLocation);
            DatabaseContext.SaveChanges();
            var result = DatabaseContext.ServiceLocations.ToList().FirstOrDefault();

            result.Should().BeEquivalentTo(serviceLocation);
        }
        public void GivenAnIdAMatchingOrganisationGetsDeleted()
        {
            var organisation = EntityHelpers.CreateOrganisation();

            DatabaseContext.Add(organisation);
            DatabaseContext.SaveChanges();
            _classUnderTest.DeleteOrganisation(organisation.Id);
            var expectedResult = DatabaseContext.Organisations.Find(organisation.Id);

            expectedResult.Should().BeNull();
        }
Exemplo n.º 18
0
        public void GivenAnIdAMatchingSynonymWordGetsDeleted()
        {
            var synonymWord = EntityHelpers.CreateSynonymWord();

            DatabaseContext.Add(synonymWord);
            DatabaseContext.SaveChanges();
            _classUnderTest.DeleteSynonymWord(synonymWord.Id);
            var expectedResult = DatabaseContext.SynonymWords.Find(synonymWord.Id);

            expectedResult.Should().BeNull();
        }
        public void GivenAnIdAMatchingTaxonomyGetsDeleted()
        {
            var taxonomy = EntityHelpers.CreateTaxonomy();

            DatabaseContext.Add(taxonomy);
            DatabaseContext.SaveChanges();
            _classUnderTest.DeleteTaxonomy(taxonomy.Id);
            var expectedResult = DatabaseContext.Taxonomies.Find(taxonomy.Id);

            expectedResult.Should().BeNull();
        }
        public void GivenValidSessionInDatabaseRefreshSessionUpdatesLastAccessAt()
        {
            var session = EntityHelpers.CreateSession("VCSO");

            DatabaseContext.Sessions.Add(session);
            DatabaseContext.SaveChanges();
            _classUnderTest.RefreshSessionExpiry(session.Id);
            var updatedSession = DatabaseContext.Sessions.Find(session.Id);

            updatedSession.LastAccessAt.Should().BeCloseTo(DateTime.Now);
        }
        public void GivenValidSessionInDatabaseSessionGetsReturned()
        {
            var session = EntityHelpers.CreateSession("VCSO");

            DatabaseContext.Sessions.Add(session);
            DatabaseContext.SaveChanges();
            var gatewayResult = _classUnderTest.GetSessionByToken(session.Payload);

            gatewayResult.Should().NotBeNull();
            gatewayResult.Should().BeEquivalentTo(session);
        }
Exemplo n.º 22
0
        public void CanGetASynonymWordEntity()
        {
            var synonymWord = EntityHelpers.CreateSynonymWord();

            DatabaseContext.Add(synonymWord);
            DatabaseContext.SaveChanges();
            //var result = DatabaseContext.SynonymWords.ToList().FirstOrDefault();
            var result = DatabaseContext.SynonymWords.FirstOrDefault(x => x.Id == synonymWord.Id);

            result.Should().BeEquivalentTo(synonymWord);
        }
        public void GivenTaxonomyDomainTaxonomyGetsCreated()
        {
            var taxonomy       = EntityHelpers.CreateTaxonomy();
            var gatewayResult  = _classUnderTest.CreateTaxonomy(taxonomy);
            var expectedResult = DatabaseContext.Taxonomies.Where(x => x.Name == taxonomy.Name).FirstOrDefault();

            gatewayResult.Should().NotBeNull();
            gatewayResult.Should().BeEquivalentTo(_mapper.ToDomain(expectedResult), options =>
            {
                return(options);
            });
        }
Exemplo n.º 24
0
        public void GivenSynonymWordDomainObjectSynonymWordGetsCreated()
        {
            var synonymWord    = EntityHelpers.CreateSynonymWord();
            var gatewayResult  = _classUnderTest.CreateSynonymWord(synonymWord);
            var expectedResult = DatabaseContext.SynonymWords.Where(x => x.Word == synonymWord.Word).FirstOrDefault();

            gatewayResult.Should().NotBeNull();
            gatewayResult.Should().BeEquivalentTo(expectedResult, options =>
            {
                return(options);
            });
        }
Exemplo n.º 25
0
        public void GivenSynonymGroupDomainObjectSynonymGroupGetsCreated()
        {
            var synonymGroup   = EntityHelpers.CreateSynonymGroup();
            var gatewayResult  = _classUnderTest.CreateSynonymGroup(synonymGroup);
            var expectedResult = DatabaseContext.SynonymGroups.Where(x => x.Name == synonymGroup.Name).FirstOrDefault();

            gatewayResult.Should().NotBeNull();
            gatewayResult.Should().BeEquivalentTo(expectedResult, options =>
            {
                options.Excluding(ex => ex.SynonymWords);
                return(options);
            });
        }
Exemplo n.º 26
0
        public ActionResult Add(Category model)
        {
            try
            {
                if (model.SupCategoryId == 0)
                {
                    model.SupCategoryId = null;
                }
                if (!ModelState.IsValid)
                {
                    ModelState.AddModelError("CategoryName", "Kategori adı 100 karakteri geçemez");
                    model.SupCategoryId  = model.SupCategoryId ?? 0;
                    ViewBag.CategoryList = GetCategorySelectList();
                    return(View(model));
                }

                if (model.SupCategoryId > 0)
                {
                    model.TaxRate = new CategoryRepo().GetById(model.SupCategoryId).TaxRate;
                }
                new CategoryRepo().Insert(model);
                TempData["Message"] = $"\n{model.CategoryName} isimli kategori başarıyla eklenmiştir";
                return(RedirectToAction("Add"));
            }
            catch (DbEntityValidationException ex)
            {
                // todo:hata sayfası yap
                TempData["Model"] = new ErrorViewModel()
                {
                    Text           = $"Bir hata oluştu\n{EntityHelpers.ValidationMessage(ex)}",
                    ActionName     = "Add",
                    ControllerName = "Category",
                    ErrorCode      = 500
                };
                return(RedirectToAction("Error", "Home"));
            }
            catch (Exception ex)
            {
                // todo:hata sayfası yap
                TempData["Model"] = new ErrorViewModel()
                {
                    Text           = $"Bir hata oluştu\n{ex.Message}",
                    ActionName     = "Add",
                    ControllerName = "Category",
                    ErrorCode      = 500
                };
                return(RedirectToAction("Error", "Home"));
            }
        }
Exemplo n.º 27
0
        public ActionResult Add(Category model)
        {
            try
            {
                if (model.SupCategoryId == 0)
                {
                    model.SupCategoryId = null;
                }
                if (!ModelState.IsValid) //veritabanıyla annotation validation işlemini doğrular
                {
                    // ModelState.AddModelError("CategoryName", "100 karakteri geçme");
                    model.SupCategoryId  = model.SupCategoryId ?? 0;
                    ViewBag.CategoryList = GetCategorySelectList();
                    return(View(model));
                }


                if (model.SupCategoryId > 0)
                {
                    model.TaxRate = new CategoryRepo().GetById(model.SupCategoryId).TaxRate;
                }

                new CategoryRepo().Insert(model);
                TempData["Message"] = $"{model.CategoryName} isimli kategori başarıyla eklendi";
                return(RedirectToAction("Add"));
            }
            catch (DbEntityValidationException ex)
            {
                TempData["Model"] = new ErrorViewModel()
                {
                    Text           = $"Bir hata oluştu{EntityHelpers.ValidationMessage(ex)}",
                    ActionName     = "Add",
                    ControllerName = "Category",
                    ErrorCode      = 500
                };
                return(RedirectToAction("Error", "Home"));
            }
            catch (Exception ex)
            {
                TempData["Model"] = new ErrorViewModel()
                {
                    Text           = $"Bir hata oluştu{ex.Message}",
                    ActionName     = "Add",
                    ControllerName = "Category",
                    ErrorCode      = 500
                };
                return(RedirectToAction("Error", "Home"));
            }
        }
Exemplo n.º 28
0
        public void FactoryShouldProvidePlaceholderImageIfImagePropertyIsNull()
        {
            // arrange
            var domainService = EntityHelpers.CreateService().ToDomain();

            domainService.Image = null;

            // act
            var expectedService = domainService.ToResponseService();

            // assert
            expectedService.Images.Should().NotBeNull();
            expectedService.Images.Medium.Should().Be(_imagePlaceholder);
            expectedService.Images.Original.Should().Be(_imagePlaceholder);
        }
        public void GivenOrganisationDomainObjectOrganisationGetsCreated()
        {
            var organisation   = EntityHelpers.CreateOrganisation();
            var gatewayResult  = _classUnderTest.CreateOrganisation(organisation);
            var expectedResult = DatabaseContext.Organisations.Where(x => x.Name == organisation.Name).FirstOrDefault();

            gatewayResult.Should().NotBeNull();
            gatewayResult.Should().BeEquivalentTo(expectedResult, options =>
            {
                options.Excluding(ex => ex.ReviewerU);
                options.Excluding(ex => ex.Services);
                options.Excluding(ex => ex.UserOrganisations);
                return(options);
            });
        }
Exemplo n.º 30
0
        public void GivenAnIdAMatchingSynonymWordGetsReturned()
        {
            var synonymWord = EntityHelpers.CreateSynonymWord();

            DatabaseContext.Add(synonymWord);
            DatabaseContext.SaveChanges();
            var gatewayResult  = _classUnderTest.GetSynonymWord(synonymWord.Id);
            var expectedResult = DatabaseContext.SynonymWords.Find(synonymWord.Id);

            gatewayResult.Should().NotBeNull();
            gatewayResult.Should().BeEquivalentTo(expectedResult, options =>
            {
                return(options);
            });
        }