public static Aatf CreateAatf(DatabaseWrapper database, Organisation organisation, short year = 2019, bool hasLocalArea = true, bool hasPanArea = true, string name = null) { LocalArea localArea = null; if (hasLocalArea) { localArea = database.WeeeContext.LocalAreas.First(); } PanArea panArea = null; if (hasPanArea) { panArea = database.WeeeContext.PanAreas.First(); } var aatfName = "aatfname"; if (!string.IsNullOrWhiteSpace(name)) { aatfName = name; } return(new Aatf(aatfName, database.WeeeContext.UKCompetentAuthorities.First(), "number", AatfStatus.Approved, organisation, CreateAatfAddress(database), AatfSize.Large, DateTime.Now, CreateDefaultContact(database.WeeeContext.Countries.First()), FacilityType.Aatf, year, localArea, panArea)); }
/// <summary> /// Initializes a new instance of the <see cref="RentalRequestViewModel" /> class. /// </summary> /// <param name="id">A system-generated unique identifier for a Request (required).</param> /// <param name="project">Project (required).</param> /// <param name="localArea">A foreign key reference to the system-generated unique identifier for a Local Area (required).</param> /// <param name="status">The status of the Rental Request - whether it in progress, completed or was cancelled. (required).</param> /// <param name="districtEquipmentType">A foreign key reference to the system-generated unique identifier for an Equipment Type (required).</param> /// <param name="equipmentCount">The number of pieces of the equipment type wanted for hire as part of this request. (required).</param> /// <param name="expectedHours">The expected number of rental hours for each piece equipment hired against this request, as provided by the Project Manager making the request..</param> /// <param name="expectedStartDate">The expected start date of each piece of equipment hired against this request, as provided by the Project Manager making the request..</param> /// <param name="expectedEndDate">The expected end date of each piece of equipment hired against this request, as provided by the Project Manager making the request..</param> /// <param name="firstOnRotationList">The first piece of equipment on the rotation list at the time of the creation of the request..</param> /// <param name="notes">Notes.</param> /// <param name="attachments">Attachments.</param> /// <param name="history">History.</param> /// <param name="rentalRequestAttachments">RentalRequestAttachments.</param> /// <param name="rentalRequestRotationList">RentalRequestRotationList.</param> public RentalRequestViewModel(int id, Project project, LocalArea localArea, string status, DistrictEquipmentType districtEquipmentType, int equipmentCount, int?expectedHours = null, DateTime?expectedStartDate = null, DateTime?expectedEndDate = null, Equipment firstOnRotationList = null, List <Note> notes = null, List <Attachment> attachments = null, List <History> history = null, List <RentalRequestAttachment> rentalRequestAttachments = null, List <RentalRequestRotationList> rentalRequestRotationList = null) { Id = id; Project = project; LocalArea = localArea; Status = status; DistrictEquipmentType = districtEquipmentType; EquipmentCount = equipmentCount; ExpectedHours = expectedHours; ExpectedStartDate = expectedStartDate; ExpectedEndDate = expectedEndDate; FirstOnRotationList = firstOnRotationList; Notes = notes; Attachments = attachments; History = history; RentalRequestAttachments = rentalRequestAttachments; RentalRequestRotationList = rentalRequestRotationList; // calculate the Yes Count based on the RentalRequestList CalculateYesCount(); }
private Owner CreateOwner(LocalArea localArea, string name) { Owner result = new Owner(); var request = new HttpRequestMessage(HttpMethod.Post, "/api/owners"); result.OrganizationName = name; result.LocalArea = localArea; string jsonString = result.ToJson(); request.Content = new StringContent(jsonString, Encoding.UTF8, "application/json"); Task <HttpResponseMessage> responseTask = _client.SendAsync(request); responseTask.Wait(); HttpResponseMessage response = responseTask.Result; response.EnsureSuccessStatusCode(); Task <string> stringTask = response.Content.ReadAsStringAsync(); stringTask.Wait(); // parse as JSON. jsonString = stringTask.Result; result = JsonConvert.DeserializeObject <Owner>(jsonString); return(result); }
private void AdjustRecord(LocalArea item) { if (item != null && item.ServiceArea != null) { item.ServiceArea = _context.ServiceAreas.FirstOrDefault(a => a.Id == item.ServiceArea.Id); } }
/// <summary> /// Test the owner search. Specifically test that searches for two items on a multi-select show the expected number of results. /// </summary> /// public async Task TestOwnerSearch() { /* Test plan: * 1. create 3 local areas. * 2. put 2 owners in each area. * 3. search for owners in local area 1 - should get 2 results. * 4. search for owners in local area 2 - should get 2 results. * 5. search for owners in local areas 1,2 - should get 4 results. * remove the owners * remove the local areas. */ string initialName = "InitialName"; // create 3 local areas. ServiceArea serviceArea = CreateServiceArea(initialName); LocalArea localArea1 = CreateLocalArea(serviceArea, "Local Area 1"); LocalArea localArea2 = CreateLocalArea(serviceArea, "Local Area 2"); LocalArea localArea3 = CreateLocalArea(serviceArea, "Local Area 3"); // create 2 owners in each. Owner owner1 = CreateOwner(localArea1, "Owner 1"); Owner owner2 = CreateOwner(localArea1, "Owner 2"); Owner owner3 = CreateOwner(localArea2, "Owner 3"); Owner owner4 = CreateOwner(localArea2, "Owner 4"); Owner owner5 = CreateOwner(localArea3, "Owner 5"); Owner owner6 = CreateOwner(localArea3, "Owner 6"); Owner[] searchresults = await OwnerSearchHelper("?localareas=" + localArea2.Id); Assert.Equal(2, searchresults.Length); searchresults = await OwnerSearchHelper("?localareas=" + localArea2.Id); Assert.Equal(2, searchresults.Length); searchresults = await OwnerSearchHelper("?localareas=" + localArea1.Id + "%2C" + localArea2.Id); Assert.Equal(4, searchresults.Length); searchresults = await OwnerSearchHelper("?owner=" + owner1.Id); Assert.Single(searchresults); // cleanup DeleteOwner(owner1); DeleteOwner(owner2); DeleteOwner(owner3); DeleteOwner(owner4); DeleteOwner(owner5); DeleteOwner(owner6); DeleteLocalArea(localArea1); DeleteLocalArea(localArea2); DeleteLocalArea(localArea3); DeleteServiceArea(serviceArea); }
/// <summary> /// Import Local Areas /// </summary> /// <param name="performContext"></param> /// <param name="dbContext"></param> /// <param name="fileLocation"></param> /// <param name="systemId"></param> public static void Import(PerformContext performContext, DbAppContext dbContext, string fileLocation, string systemId) { // check the start point. If startPoint == sigId then it is already completed int startPoint = ImportUtility.CheckInterMapForStartPoint(dbContext, OldTableProgress, BcBidImport.SigId, NewTable); if (startPoint == BcBidImport.SigId) // this means the import job it has done today is complete for all the records in the xml file. { performContext.WriteLine("*** Importing " + XmlFileName + " is complete from the former process ***"); return; } try { string rootAttr = "ArrayOf" + OldTable; // create Processer progress indicator performContext.WriteLine("Processing " + OldTable); IProgressBar progress = performContext.WriteProgressBar(); progress.SetValue(0); // create serializer and serialize xml file XmlSerializer ser = new XmlSerializer(typeof(Area[]), new XmlRootAttribute(rootAttr)); MemoryStream memoryStream = ImportUtility.MemoryStreamGenerator(XmlFileName, OldTable, fileLocation, rootAttr); Area[] legacyItems = (Area[])ser.Deserialize(memoryStream); int ii = startPoint; // skip the portion already processed if (startPoint > 0) { legacyItems = legacyItems.Skip(ii).ToArray(); } Debug.WriteLine("Importing LocalArea Data. Total Records: " + legacyItems.Length); foreach (Area item in legacyItems.WithProgress(progress)) { // see if we have this one already ImportMap importMap = dbContext.ImportMaps.FirstOrDefault(x => x.OldTable == OldTable && x.OldKey == item.Area_Id.ToString()); // new entry if (importMap == null && item.Area_Id > 0) { LocalArea localArea = null; CopyToInstance(dbContext, item, ref localArea, systemId); ImportUtility.AddImportMap(dbContext, OldTable, item.Area_Id.ToString(), NewTable, localArea.Id); } } performContext.WriteLine("*** Importing " + XmlFileName + " is Done ***"); ImportUtility.AddImportMapForProgress(dbContext, OldTableProgress, BcBidImport.SigId.ToString(), BcBidImport.SigId, NewTable); dbContext.SaveChangesForImport(); } catch (Exception e) { performContext.WriteLine("*** ERROR ***"); performContext.WriteLine(e.ToString()); throw; } }
/// <summary> /// Gets the hash code /// </summary> /// <returns>Hash code</returns> public override int GetHashCode() { // credit: http://stackoverflow.com/a/263416/677735 unchecked // Overflow is fine, just wrap { int hash = 41; // Suitable nullity checks hash = hash * 59 + Id.GetHashCode(); if (LocalArea != null) { hash = hash * 59 + LocalArea.GetHashCode(); } if (EquipmentCount != null) { hash = hash * 59 + EquipmentCount.GetHashCode(); } if (EquipmentTypeName != null) { hash = hash * 59 + EquipmentTypeName.GetHashCode(); } if (ProjectName != null) { hash = hash * 59 + ProjectName.GetHashCode(); } if (PrimaryContact != null) { hash = hash * 59 + PrimaryContact.GetHashCode(); } if (Status != null) { hash = hash * 59 + Status.GetHashCode(); } if (ProjectId != null) { hash = hash * 59 + ProjectId.GetHashCode(); } if (ExpectedStartDate != null) { hash = hash * 59 + ExpectedStartDate.GetHashCode(); } if (ExpectedEndDate != null) { hash = hash * 59 + ExpectedEndDate.GetHashCode(); } return(hash); } }
private void DeleteLocalArea(LocalArea localArea) { var request = new HttpRequestMessage(HttpMethod.Post, "/api/localareas/" + localArea.Id + "/delete"); Task <HttpResponseMessage> responseTask = _client.SendAsync(request); responseTask.Wait(); HttpResponseMessage response = responseTask.Result; response.EnsureSuccessStatusCode(); }
public static List <LocalArea> GetLocalAreaByStateId(int stateId) { try { var connection = ConfigurationManager.ConnectionStrings["DataKioskEntities"].ConnectionString; if (string.IsNullOrEmpty(connection)) { return(new List <LocalArea>()); } //var localAreas = GetLocalAreas(); //if (!localAreas.Any()) //{ // return new List<LocalArea>(); //} //var items = localAreas.FindAll(x => x.StateId == stateId); //if (!items.Any()) //{ // return new List<LocalArea>(); //} //return items; using (var sqlConnection = new SqlConnection(connection)) { sqlConnection.Open(); var sqlBuilder = new StringBuilder(); sqlBuilder.AppendFormat("SELECT * " + " FROM \"EnrollKiosk\".\"LocalArea\" " + " WHERE \"StateId\" = {0}", stateId); string sql = sqlBuilder.ToString(); var command = new SqlCommand(sql, sqlConnection); var dr = command.ExecuteReader(); var items = new List <LocalArea>(); while (dr.Read()) { var item = new LocalArea(); { item.LocalAreaId = dr.GetInt64(dr.GetOrdinal("LocalAreaId")); item.Name = dr.GetString(dr.GetOrdinal("Name")); }; items.Add(item); } sqlConnection.Close(); return(items); } } catch (Exception ex) { BugManager.LogApplicationBug(ex.StackTrace, ex.Source, ex.Message); return(new List <LocalArea>()); } }
/// <summary> /// Initializes a new instance of the <see cref="RentalRequestSearchResultViewModel" /> class. /// </summary> /// <param name="Id">Id (required).</param> /// <param name="LocalArea">LocalArea.</param> /// <param name="EquipmentCount">EquipmentCount.</param> /// <param name="EquipmentTypeName">EquipmentTypeName.</param> /// <param name="ProjectName">ProjectName.</param> /// <param name="PrimaryContact">PrimaryContact.</param> /// <param name="Status">Project status.</param> /// <param name="ProjectId">ProjectId.</param> /// <param name="ExpectedStartDate">ExpectedStartDate.</param> /// <param name="ExpectedEndDate">ExpectedEndDate.</param> public RentalRequestSearchResultViewModel(int Id, LocalArea LocalArea = null, int?EquipmentCount = null, string EquipmentTypeName = null, string ProjectName = null, Contact PrimaryContact = null, string Status = null, int?ProjectId = null, DateTime?ExpectedStartDate = null, DateTime?ExpectedEndDate = null) { this.Id = Id; this.LocalArea = LocalArea; this.EquipmentCount = EquipmentCount; this.EquipmentTypeName = EquipmentTypeName; this.ProjectName = ProjectName; this.PrimaryContact = PrimaryContact; this.Status = Status; this.ProjectId = ProjectId; this.ExpectedStartDate = ExpectedStartDate; this.ExpectedEndDate = ExpectedEndDate; }
/// <summary> /// Map data /// </summary> /// <param name="dbContext"></param> /// <param name="oldObject"></param> /// <param name="localArea"></param> /// <param name="systemId"></param> private static void CopyToInstance(DbAppContext dbContext, ImportModels.Area oldObject, ref LocalArea localArea, string systemId) { bool isNew = false; if (oldObject.Area_Id <= 0) { return; } if (localArea == null) { isNew = true; localArea = new LocalArea { Id = oldObject.Area_Id }; } try { localArea.Name = oldObject.Area_Desc.Trim(); } catch { // do nothing } try { ServiceArea serviceArea = dbContext.ServiceAreas.FirstOrDefault(x => x.MinistryServiceAreaID == oldObject.Service_Area_Id); localArea.ServiceArea = serviceArea; } catch { // do nothing } if (isNew) { localArea.CreateUserid = systemId; localArea.CreateTimestamp = DateTime.UtcNow; dbContext.LocalAreas.Add(localArea); } else { localArea.LastUpdateUserid = systemId; localArea.LastUpdateTimestamp = DateTime.UtcNow; dbContext.LocalAreas.Update(localArea); } }
public void Map_GivenSource_LocalAreaDataMustBeMapped() { var localArea = new LocalArea() { Name = "PName", CompetentAuthorityId = Guid.NewGuid(), Id = Guid.NewGuid() }; var result = mapper.Map(localArea); result.Name.Should().Be(localArea.Name); result.Id.Should().Be(localArea.Id); result.CompetentAuthorityId.Should().Be(localArea.CompetentAuthorityId); }
/// <summary> /// Initializes a new instance of the <see cref="RentalRequestSearchResultViewModel" /> class. /// </summary> /// <param name="id">Id (required).</param> /// <param name="localArea">LocalArea.</param> /// <param name="equipmentCount">EquipmentCount.</param> /// <param name="equipmentTypeName">EquipmentTypeName.</param> /// <param name="projectName">ProjectName.</param> /// <param name="primaryContact">PrimaryContact.</param> /// <param name="status">Project status.</param> /// <param name="projectId">ProjectId.</param> /// <param name="expectedStartDate">ExpectedStartDate.</param> /// <param name="expectedEndDate">ExpectedEndDate.</param> public RentalRequestSearchResultViewModel(int id, LocalArea localArea = null, int?equipmentCount = null, string equipmentTypeName = null, string projectName = null, Contact primaryContact = null, string status = null, int?projectId = null, DateTime?expectedStartDate = null, DateTime?expectedEndDate = null) { Id = id; LocalArea = localArea; EquipmentCount = equipmentCount; EquipmentTypeName = equipmentTypeName; ProjectName = projectName; PrimaryContact = primaryContact; Status = status; ProjectId = projectId; ExpectedStartDate = expectedStartDate; ExpectedEndDate = expectedEndDate; }
/// <summary> /// Get local area by id /// </summary> /// <param name="id">id of LocalArea to fetch</param> /// <response code="200">OK</response> /// <response code="404">LocalArea not found</response> public virtual IActionResult LocalAreasIdGetAsync(int id) { bool exists = _context.LocalAreas.Any(a => a.Id == id); if (exists) { LocalArea result = _context.LocalAreas .Include(x => x.ServiceArea.District.Region) .First(a => a.Id == id); return(new ObjectResult(new HetsResponse(result))); } // record not found return(new ObjectResult(new HetsResponse("HETS-01", ErrorViewModel.GetDescription("HETS-01", _configuration)))); }
public async Task SharedUserNotificationAccess() { // Setup. var notification = NotificationApplicationFactory.Create(Guid.NewGuid(), NotificationType.Recovery, UKCompetentAuthority.England, 20181); var aspnetInternalUser = UserFactory.Create(Guid.NewGuid(), "Internal", "Internal Last", "12345", "*****@*****.**"); var aspnetSharedUser = UserFactory.Create(Guid.NewGuid(), "External", "Shared", "12345", "*****@*****.**"); var localArea = new LocalArea(Guid.NewGuid(), "Test Area", (int)UKCompetentAuthority.England); context.NotificationApplications.Add(notification); context.Users.Add(aspnetInternalUser); context.Users.Add(aspnetSharedUser); context.LocalAreas.Add(localArea); await context.SaveChangesAsync(); var internalUser = new InternalUser(aspnetInternalUser.Id, "test", UKCompetentAuthority.England, localArea.Id); var sharedUser = new SharedUser(notification.Id, aspnetSharedUser.Id, DateTimeOffset.Now); context.InternalUsers.Add(internalUser); context.SharedUser.Add(sharedUser); await context.SaveChangesAsync(); // Set the shared user to be the user context. A.CallTo(() => userContext.UserId).Returns(Guid.Parse(sharedUser.UserId)); var authorization = new NotificationApplicationAuthorization(context, userContext); // Assert. // There's no assertion for 'does not throw exception' so just executing it as normal. await authorization.EnsureAccessAsync(notification.Id); // Clear data. context.DeleteOnCommit(internalUser); context.DeleteOnCommit(sharedUser); await context.SaveChangesAsync(); context.Entry(aspnetInternalUser).State = EntityState.Deleted; context.Entry(aspnetSharedUser).State = EntityState.Deleted; context.Entry(localArea).State = EntityState.Deleted; await context.SaveChangesAsync(); context.DeleteOnCommit(notification); await context.SaveChangesAsync(); }
/// <summary> /// /// </summary> /// <param name="dbContext"></param> /// <param name="oldObject"></param> /// <param name="localArea"></param> static private void CopyToInstance(PerformContext performContext, DbAppContext dbContext, HETSAPI.Import.Area oldObject, ref LocalArea localArea, string systemId) { bool isNew = false; if (oldObject.Area_Id <= 0) { return; } if (localArea == null) { isNew = true; localArea = new LocalArea(); localArea.Id = oldObject.Area_Id; } try { localArea.Name = oldObject.Area_Desc.Trim(); } catch (Exception e) { string istr = e.ToString(); } try { ServiceArea serviceArea = dbContext.ServiceAreas.FirstOrDefault(x => x.MinistryServiceAreaID == oldObject.Service_Area_Id); localArea.ServiceArea = serviceArea; } catch (Exception e) { string iStr = e.ToString(); } if (isNew) { localArea.CreateUserid = systemId; localArea.CreateTimestamp = DateTime.UtcNow; dbContext.LocalAreas.Add(localArea); } else { localArea.LastUpdateUserid = systemId; localArea.LastUpdateTimestamp = DateTime.UtcNow; dbContext.LocalAreas.Update(localArea); } }
public async Task RandomExternalUserAccessThrowsException() { // Setup. var notification = NotificationApplicationFactory.Create(Guid.NewGuid(), NotificationType.Recovery, UKCompetentAuthority.England, 20181); var aspnetInternalUser = UserFactory.Create(Guid.NewGuid(), "Internal", "Internal Last", "12345", "*****@*****.**"); var aspnetSharedUser = UserFactory.Create(Guid.NewGuid(), "External", "Shared", "12345", "*****@*****.**"); var localArea = new LocalArea(Guid.NewGuid(), "Test Area", (int)UKCompetentAuthority.England); context.NotificationApplications.Add(notification); context.Users.Add(aspnetInternalUser); context.Users.Add(aspnetSharedUser); context.LocalAreas.Add(localArea); await context.SaveChangesAsync(); var internalUser = new InternalUser(aspnetInternalUser.Id, "test", UKCompetentAuthority.England, localArea.Id); //Shared user is different to the user context. var sharedUser = new SharedUser(notification.Id, aspnetSharedUser.Id, DateTimeOffset.Now); context.SharedUser.Add(sharedUser); await context.SaveChangesAsync(); context.InternalUsers.Add(internalUser); await context.SaveChangesAsync(); var authorization = new NotificationApplicationAuthorization(context, userContext); // Assert. await Assert.ThrowsAsync <SecurityException>(() => authorization.EnsureAccessAsync(notification.Id)); // Clear data. context.DeleteOnCommit(internalUser); context.DeleteOnCommit(sharedUser); await context.SaveChangesAsync(); context.Entry(aspnetInternalUser).State = EntityState.Deleted; context.Entry(aspnetSharedUser).State = EntityState.Deleted; context.Entry(localArea).State = EntityState.Deleted; await context.SaveChangesAsync(); context.DeleteOnCommit(notification); await context.SaveChangesAsync(); }
public async Task <bool> HandleAsync(AddAatf message) { authorization.EnsureCanAccessInternalArea(); authorization.EnsureUserInRole(Roles.InternalAdmin); var siteAddress = addressMapper.Map(message.Aatf.SiteAddress); var organisation = await dataAccess.GetById <Organisation>(message.OrganisationId); var competentAuthority = await commonDataAccess.FetchCompetentAuthority(message.Aatf.CompetentAuthority.Abbreviation); var contact = contactMapper.Map(message.AatfContact); LocalArea localArea = null; PanArea panArea = null; if (message.Aatf.LocalAreaData != null) { localArea = await commonDataAccess.FetchLookup <LocalArea>(message.Aatf.LocalAreaData.Id); } if (message.Aatf.PanAreaData != null) { panArea = await commonDataAccess.FetchLookup <PanArea>(message.Aatf.PanAreaData.Id); } var aatf = new Domain.AatfReturn.Aatf( message.Aatf.Name, competentAuthority, message.Aatf.ApprovalNumber, Enumeration.FromValue <Domain.AatfReturn.AatfStatus>(message.Aatf.AatfStatus.Value), organisation, siteAddress, Enumeration.FromValue <Domain.AatfReturn.AatfSize>(message.Aatf.Size.Value), message.Aatf.ApprovalDate.GetValueOrDefault(), contact, message.Aatf.FacilityType.ToDomainEnumeration <Domain.AatfReturn.FacilityType>(), message.Aatf.ComplianceYear, localArea, panArea, message.AatfId); await dataAccess.Add <Domain.AatfReturn.Aatf>(aatf); return(true); }
/// <summary> /// /// </summary> /// <param name="item"></param> /// <response code="201">LocalArea created</response> public virtual IActionResult LocalAreasPostAsync(LocalArea item) { AdjustRecord(item); var exists = _context.LocalAreas.Any(a => a.Id == item.Id); if (exists) { _context.LocalAreas.Update(item); } else { // record not found _context.LocalAreas.Add(item); } // Save the changes _context.SaveChanges(); return(new ObjectResult(item)); }
public async Task HandleAsync_GivenMandatoryParametersAndLocalArea_FileNameShouldNotContainLocalArea() { GetAatfAeDetailsCsv request = new GetAatfAeDetailsCsv(fixture.Create <int>(), fixture.Create <ReportFacilityType>(), null, null, fixture.Create <Guid>(), false); LocalArea localArea = fixture.Create <LocalArea>(); A.CallTo(() => commonDataAccess.FetchLookup <LocalArea>(request.LocalArea.Value)).Returns(localArea); DateTime date = new DateTime(2019, 05, 18, 11, 12, 0); SystemTime.Freeze(date); CSVFileData data = await handler.HandleAsync(request); data.FileName.Should().Be($"{request.ComplianceYear}_{request.FacilityType.ToString().ToUpper()}_AATF-AE-PCS-organisation details_{date:ddMMyyyy_HHmm}.csv"); SystemTime.Unfreeze(); }
/// <summary> /// /// </summary> /// <param name="id">id of LocalArea to fetch</param> /// <param name="item"></param> /// <response code="200">OK</response> /// <response code="404">LocalArea not found</response> public virtual IActionResult LocalAreasIdPutAsync(int id, LocalArea item) { AdjustRecord(item); var exists = _context.LocalAreas.Any(a => a.Id == id); if (exists && id == item.Id) { _context.LocalAreas.Update(item); // Save the changes _context.SaveChanges(); return(new ObjectResult(item)); } else { // record not found return(new StatusCodeResult(404)); } }
/// <summary> /// Update local area /// </summary> /// <param name="id">id of LocalArea to update</param> /// <param name="item"></param> /// <response code="200">OK</response> /// <response code="404">LocalArea not found</response> public virtual IActionResult LocalAreasIdPutAsync(int id, LocalArea item) { AdjustRecord(item); bool exists = _context.LocalAreas.Any(a => a.Id == id); if (exists && id == item.Id) { _context.LocalAreas.Update(item); // Save the changes _context.SaveChanges(); return(new ObjectResult(new HetsResponse(item))); } // record not found return(new ObjectResult(new HetsResponse("HETS-01", ErrorViewModel.GetDescription("HETS-01", _configuration)))); }
public virtual void UpdateDetails(string name, UKCompetentAuthority competentAuthority, string approvalNumber, AatfStatus aatfStatus, Organisation organisation, AatfSize aatfSize, DateTime?approvalDate, LocalArea localArea, PanArea panArea) { Name = name; CompetentAuthority = competentAuthority; ApprovalNumber = approvalNumber; AatfStatus = aatfStatus; Organisation = organisation; Size = aatfSize; ApprovalDate = approvalDate; LocalArea = localArea; if (localArea == null) { LocalAreaId = null; } PanArea = panArea; if (panArea == null) { PanAreaId = null; } }
public void Aatf_GivenNullLocalArea_LocalAreaIsNull() { var competentAuthority = A.Fake <UKCompetentAuthority>(); var organisation = A.Fake <Organisation>(); const string name = "name"; const string approvalNumber = "approvalNumber"; var aatfStatus = AatfStatus.Approved; var contact = A.Fake <AatfContact>(); var complianceYear = (Int16)2019; LocalArea localArea = null; var panArea = A.Fake <PanArea>(); var facilityType = FacilityType.Aatf; var date = DateTime.Now; var address = A.Fake <AatfAddress>(); var size = AatfSize.Large; var aatf = new Aatf(name, competentAuthority, approvalNumber, aatfStatus, organisation, address, size, date, contact, facilityType, complianceYear, localArea, panArea); aatf.LocalArea.Should().Be(localArea); }
/// <summary> /// Map data /// </summary> /// <param name="dbContext"></param> /// <param name="oldObject"></param> /// <param name="localArea"></param> /// <param name="systemId"></param> private static void CopyToInstance(DbAppContext dbContext, Area oldObject, ref LocalArea localArea, string systemId) { try { if (oldObject.Area_Id <= 0) { return; } localArea = new LocalArea { Id = oldObject.Area_Id, LocalAreaNumber = oldObject.Area_Id, Name = ImportUtility.GetCapitalCase(oldObject.Area_Desc.Trim()) }; // map to the correct service area ServiceArea serviceArea = dbContext.ServiceAreas.AsNoTracking() .FirstOrDefault(x => x.MinistryServiceAreaID == oldObject.Service_Area_Id); if (serviceArea == null) { // not mapped correctly return; } localArea.ServiceAreaId = serviceArea.Id; localArea.AppCreateUserid = systemId; localArea.AppCreateTimestamp = DateTime.UtcNow; localArea.AppLastUpdateUserid = systemId; localArea.AppLastUpdateTimestamp = DateTime.UtcNow; dbContext.LocalAreas.Add(localArea); } catch (Exception e) { Console.WriteLine(e); throw; } }
public Aatf(string name, UKCompetentAuthority competentAuthority, string approvalNumber, AatfStatus aatfStatus, Organisation organisation, AatfAddress aatfSiteAddress, AatfSize aatfSize, DateTime approvalDate, AatfContact contact, FacilityType facilityType, Int16 complianceYear, LocalArea localArea, PanArea panArea, Guid?aatfId = null) { Guard.ArgumentNotNullOrEmpty(() => name, name); Guard.ArgumentNotNullOrEmpty(() => approvalNumber, approvalNumber); Guard.ArgumentNotNull(() => competentAuthority, competentAuthority); Guard.ArgumentNotNull(() => aatfStatus, aatfStatus); Guard.ArgumentNotNull(() => organisation, organisation); Guard.ArgumentNotNull(() => contact, contact); Guard.ArgumentNotNull(() => aatfSize, aatfSize); Guard.ArgumentNotNull(() => aatfSiteAddress, aatfSiteAddress); Guard.ArgumentNotNull(() => facilityType, facilityType); Name = name; CompetentAuthority = competentAuthority; ApprovalNumber = approvalNumber; AatfStatus = aatfStatus; Organisation = organisation; Size = aatfSize; SiteAddress = aatfSiteAddress; ApprovalDate = approvalDate; Contact = contact; FacilityType = facilityType; ComplianceYear = complianceYear; LocalArea = localArea; PanArea = panArea; AatfId = aatfId == null?Guid.NewGuid() : aatfId.Value; }
public async Task InternalUserDifferentCompetentAuthorityAccessThrowsException() { // Setup. var notification = NotificationApplicationFactory.Create(Guid.NewGuid(), NotificationType.Recovery, UKCompetentAuthority.England, 20181); var aspnetInternalUser = UserFactory.Create(Guid.NewGuid(), "Internal", "Internal Last", "12345", "*****@*****.**"); var localArea = new LocalArea(Guid.NewGuid(), "Test Area", (int)UKCompetentAuthority.England); context.NotificationApplications.Add(notification); context.Users.Add(aspnetInternalUser); context.LocalAreas.Add(localArea); await context.SaveChangesAsync(); // Internal user is different UKCA from the notification - should cause the exception. var internalUser = new InternalUser(aspnetInternalUser.Id, "test", UKCompetentAuthority.Wales, localArea.Id); context.InternalUsers.Add(internalUser); await context.SaveChangesAsync(); A.CallTo(() => userContext.UserId).Returns(Guid.Parse(internalUser.UserId)); var authorization = new NotificationApplicationAuthorization(context, userContext); // Assert. await Assert.ThrowsAsync <SecurityException>(() => authorization.EnsureAccessAsync(notification.Id)); // Clear data. context.DeleteOnCommit(internalUser); await context.SaveChangesAsync(); context.Entry(aspnetInternalUser).State = EntityState.Deleted; context.Entry(localArea).State = EntityState.Deleted; await context.SaveChangesAsync(); context.DeleteOnCommit(notification); await context.SaveChangesAsync(); }
/// <summary> /// Delete local area /// </summary> /// <param name="id">id of LocalArea to delete</param> /// <response code="200">OK</response> /// <response code="404">LocalArea not found</response> public virtual IActionResult LocalAreasIdDeletePostAsync(int id) { bool exists = _context.LocalAreas.Any(a => a.Id == id); if (exists) { LocalArea item = _context.LocalAreas.First(a => a.Id == id); if (item != null) { _context.LocalAreas.Remove(item); // Save the changes _context.SaveChanges(); } return(new ObjectResult(new HetsResponse(item))); } // record not found return(new ObjectResult(new HetsResponse("HETS-01", ErrorViewModel.GetDescription("HETS-01", _configuration)))); }
public async Task HandleAsync_GivenMandatoryParametersAndAllOptionalParameters_FileNameShouldBeCorrect() { UKCompetentAuthority ca = fixture.Create <UKCompetentAuthority>(); LocalArea localArea = fixture.Create <LocalArea>(); PanArea panArea = fixture.Create <PanArea>(); GetAatfAeDetailsCsv request = new GetAatfAeDetailsCsv(fixture.Create <int>(), fixture.Create <ReportFacilityType>(), ca.Id, panArea.Id, localArea.Id, false); A.CallTo(() => commonDataAccess.FetchCompetentAuthorityById(request.AuthorityId.Value)).Returns(ca); A.CallTo(() => commonDataAccess.FetchLookup <LocalArea>(request.LocalArea.Value)).Returns(localArea); A.CallTo(() => commonDataAccess.FetchLookup <PanArea>(request.PanArea.Value)).Returns(panArea); DateTime date = new DateTime(2019, 05, 18, 11, 12, 0); SystemTime.Freeze(date); CSVFileData data = await handler.HandleAsync(request); data.FileName.Should().Be($"{request.ComplianceYear}_{ca.Abbreviation}_{panArea.Name}_{request.FacilityType.ToString().ToUpper()}_AATF-AE-PCS-organisation details_{date:ddMMyyyy_HHmm}.csv"); SystemTime.Unfreeze(); }
public async Task CheckExternalUserNotOwnerAccessThrowsException() { // Setup. var notification = NotificationApplicationFactory.Create(Guid.NewGuid(), NotificationType.Recovery, UKCompetentAuthority.England, 20181); var aspnetInternalUser = UserFactory.Create(Guid.NewGuid(), "Internal", "Internal Last", "12345", "*****@*****.**"); var localArea = new LocalArea(Guid.NewGuid(), "Test Area", (int)UKCompetentAuthority.England); context.NotificationApplications.Add(notification); context.Users.Add(aspnetInternalUser); context.LocalAreas.Add(localArea); await context.SaveChangesAsync(); var internalUser = new InternalUser(aspnetInternalUser.Id, "test", UKCompetentAuthority.England, localArea.Id); context.InternalUsers.Add(internalUser); await context.SaveChangesAsync(); var authorization = new NotificationApplicationAuthorization(context, userContext); // Assert. await Assert.ThrowsAsync <SecurityException>(() => authorization.EnsureAccessIsOwnerAsync(notification.Id)); // Clear data. context.DeleteOnCommit(internalUser); await context.SaveChangesAsync(); context.Entry(aspnetInternalUser).State = EntityState.Deleted; context.Entry(localArea).State = EntityState.Deleted; await context.SaveChangesAsync(); context.DeleteOnCommit(notification); await context.SaveChangesAsync(); }