public IActionResult Put(string existingName, [FromBody] DataSetUpdate dataSetUpdate) { var validationResultString = DataSetService.ValidateDataSetName(existingName); if (validationResultString.Any()) { return(HttpErrorResult(StatusCodes.Status400BadRequest, validationResultString)); } dataSetService.ThrowIfDataSetIsBusy(existingName); dataSetService.ThrowIfDataSetIsBusy(dataSetUpdate.Name); if (string.CompareOrdinal(existingName, dataSetUpdate.Name) == 0) { return(new StatusCodeResult(StatusCodes.Status304NotModified)); } if (!dataSetService.IsExists(existingName)) { return(HttpErrorResult(StatusCodes.Status404NotFound, string.Format(DataSetResources.DataSet_0_IsNotFound, existingName))); } if (dataSetService.IsExists(dataSetUpdate.Name)) { return(HttpErrorResult(StatusCodes.Status409Conflict, string.Format(DataSetResources.DataSet_0_IsAlreadyExist, dataSetUpdate.Name))); } dataSetService.Update(existingName, dataSetUpdate.Name); return(new StatusCodeResult(StatusCodes.Status200OK)); }
public void GetDataSetsWithInitialCollection_ReturnsArrayWithoutChanges_IfNonEmptyArrayWasPassedAndThereWereNoDataToBeAppended() { //Arrange IEnumerable <AnalysisType> analysisTypes = new AnalysisType[] { AnalysisType.Quotations, AnalysisType.Prices }; AnalysisDataQueryDefinition queryDef = new AnalysisDataQueryDefinition(UTDefaulter.DEFAULT_ASSET_ID, UTDefaulter.DEFAULT_TIMEFRAME_ID) { AnalysisTypes = analysisTypes }; Mock <IQuotationRepository> quotationRepository = new Mock <IQuotationRepository>(); Mock <IPriceRepository> priceRepository = new Mock <IPriceRepository>(); IEnumerable <PriceDto> priceDtos = utf.getDefaultPriceDtosCollection(); quotationRepository.Setup(q => q.GetQuotations(queryDef)).Returns(new List <QuotationDto>()); priceRepository.Setup(p => p.GetPrices(queryDef)).Returns(priceDtos); //Act DataSet[] baseDataSets = new DataSet[11]; baseDataSets[7] = utf.getDataSet(7); baseDataSets[8] = utf.getDataSet(8); baseDataSets[9] = utf.getDataSet(9); baseDataSets[10] = utf.getDataSet(10); IDataSetService service = new DataSetService(); service.InjectQuotationRepository(quotationRepository.Object); service.InjectPriceRepository(priceRepository.Object); var dataSets = service.GetDataSets(queryDef, baseDataSets).ToArray(); //Assert var areEqual = baseDataSets.HasEqualItemsInTheSameOrder(dataSets); Assert.IsTrue(areEqual); }
public IActionResult Delete(string name) { dataSetService.ThrowIfDataSetIsBusy(name); var validationResultString = DataSetService.ValidateDataSetName(name); if (validationResultString.Any()) { return(HttpErrorResult(StatusCodes.Status400BadRequest, validationResultString)); } if (!dataSetService.IsExists(name)) { return(HttpErrorResult(StatusCodes.Status404NotFound, string.Format(DataSetResources.DataSet_0_IsNotFound, name))); } if (dataSetService.HasServiceReference(name)) { return(HttpErrorResult(StatusCodes.Status406NotAcceptable, DataSetResources.DataSetNotAllowedToDeleteBecauseOfDependingService)); } dataSetService.Delete(name); return(new StatusCodeResult(StatusCodes.Status200OK)); }
public void GetDataSetsWithInitialCollection_ReturnsNullArray_IfNullArrayWasPassedAndThereWereNoDataToBeAppended() { //Arrange IEnumerable <AnalysisType> analysisTypes = new AnalysisType[] { AnalysisType.Quotations, AnalysisType.Prices }; AnalysisDataQueryDefinition queryDef = new AnalysisDataQueryDefinition(UTDefaulter.DEFAULT_ASSET_ID, UTDefaulter.DEFAULT_TIMEFRAME_ID) { AnalysisTypes = analysisTypes }; Mock <IQuotationRepository> quotationRepository = new Mock <IQuotationRepository>(); Mock <IPriceRepository> priceRepository = new Mock <IPriceRepository>(); IEnumerable <PriceDto> priceDtos = utf.getDefaultPriceDtosCollection(); quotationRepository.Setup(q => q.GetQuotations(queryDef)).Returns(new List <QuotationDto>()); priceRepository.Setup(p => p.GetPrices(queryDef)).Returns(priceDtos); //Act DataSet[] previous = new DataSet[] { }; IDataSetService service = new DataSetService(); service.InjectQuotationRepository(quotationRepository.Object); service.InjectPriceRepository(priceRepository.Object); var dataSets = service.GetDataSets(queryDef, previous).ToArray(); //Assert var isEmpty = (dataSets.Length == 0 || (dataSets.Length == 1 && dataSets[0] == null)); Assert.IsTrue(isEmpty); }
private Version() { _weightService = new WeightService(); _classVersionService = new ClassVersionService(); _dataSetService = new DataSetService(); InitializeComponent(); }
public void GetDataSets_ReturnsEmptyCollection_IfThereIsNoQuotationForGivenDateRange() { //Arrange IEnumerable <AnalysisType> analysisTypes = new AnalysisType[] { AnalysisType.Quotations, AnalysisType.Prices }; AnalysisDataQueryDefinition queryDef = new AnalysisDataQueryDefinition(UTDefaulter.DEFAULT_ASSET_ID, UTDefaulter.DEFAULT_TIMEFRAME_ID) { AnalysisTypes = analysisTypes }; Mock <IQuotationRepository> quotationRepository = new Mock <IQuotationRepository>(); Mock <IPriceRepository> priceRepository = new Mock <IPriceRepository>(); IEnumerable <PriceDto> priceDtos = utf.getDefaultPriceDtosCollection(); quotationRepository.Setup(q => q.GetQuotations(queryDef)).Returns(new List <QuotationDto>()); priceRepository.Setup(q => q.GetPrices(queryDef)).Returns(priceDtos); //Act IDataSetService service = new DataSetService(); service.InjectQuotationRepository(quotationRepository.Object); service.InjectPriceRepository(priceRepository.Object); var dataSets = service.GetDataSets(queryDef); //Assert var isEmpty = (dataSets.Count() == 0); Assert.IsTrue(isEmpty); }
public void GetDataSets_DoesntOverrideExistingObjectsWithNulls_IfTheyAreNotInSpecificRepositories() { //Arrange:QueryDef IEnumerable <AnalysisType> analysisTypes = new AnalysisType[] { AnalysisType.Prices }; AnalysisDataQueryDefinition queryDef = new AnalysisDataQueryDefinition(UTDefaulter.DEFAULT_ASSET_ID, UTDefaulter.DEFAULT_TIMEFRAME_ID) { AnalysisTypes = analysisTypes }; //Arrange:Quotations Mock <IQuotationRepository> quotationRepository = new Mock <IQuotationRepository>(); IEnumerable <QuotationDto> quotationDtos = new QuotationDto[] { utf.getQuotationDto(1), utf.getQuotationDto(2), utf.getQuotationDto(3), utf.getQuotationDto(4) }; quotationRepository.Setup(q => q.GetQuotations(queryDef)).Returns(quotationDtos); //Arrange:Prices Mock <IPriceRepository> priceRepository = new Mock <IPriceRepository>(); IEnumerable <PriceDto> priceDtos = new PriceDto[] { utf.getPriceDto(1), utf.getPriceDto(2), utf.getPriceDto(3), utf.getPriceDto(4) }; priceRepository.Setup(p => p.GetPrices(queryDef)).Returns(priceDtos); //Act IDataSetService service = new DataSetService(); service.InjectQuotationRepository(quotationRepository.Object); service.InjectPriceRepository(priceRepository.Object); var dataSets = service.GetDataSets(queryDef); if (dataSets == null) { throw new Exception("Collection should not be null"); } DataSet baseDataSet = dataSets.SingleOrDefault(ds => ds.IndexNumber == 2); if (baseDataSet == null) { throw new Exception("Base data set shouldn't be null"); } Price basePrice = (baseDataSet == null ? null : baseDataSet.GetPrice()); if (basePrice == null) { throw new Exception("Base price shouldn't be null"); } priceRepository.Setup(q => q.GetPrices(queryDef)).Returns(new PriceDto[] { }); service.InjectPriceRepository(priceRepository.Object); dataSets = service.GetDataSets(queryDef); DataSet comparedDataSet = dataSets.SingleOrDefault(ds => ds.IndexNumber == 2); Price comparedPrice = (comparedDataSet == null ? null : comparedDataSet.GetPrice()); //Assert var areTheSameObject = (basePrice == comparedPrice); Assert.IsTrue(areTheSameObject); }
public ActionResult GetDataSetsInfo(int assetId, int timeframeId) { IDataSetService dataSetService = new DataSetService(); AnalysisInfo info = dataSetService.GetAnalysisInfo(assetId, timeframeId); var json = new { info = info }; return(Json(json, JsonRequestBehavior.AllowGet)); }
public ActionResult GetDataSets(int assetId, int timeframeId) { IDataSetService dataSetService = new DataSetService(); ITrendlineService trendlineService = new TrendlineService(); IEnumerable <DataSet> dataSets = dataSetService.GetDataSets(assetId, timeframeId); IEnumerable <ExtremumGroup> extremumGroups = trendlineService.GetExtremumGroups(assetId, timeframeId); IEnumerable <Trendline> trendlines = trendlineService.GetVisibleTrendlines(assetId, timeframeId); var json = new { quotations = dataSets, extremumGroups = extremumGroups, trendlines = trendlines }; return(Json(json, JsonRequestBehavior.AllowGet)); }
public StartupService(SiteConfig siteConfig, ILogger <StartupService> logger, ElasticClientFactory elasticClientFactory, DataSetService dataSetService, DBUpdateService dbUpdateService, MachineResourceService machineResourceService, ServiceManager serviceManager, ILicenseManager licenseManager) { this.licenseManager = licenseManager; this.serviceManager = serviceManager; this.dbUpdateService = dbUpdateService; this.dataSetService = dataSetService; this.logger = logger; this.elasticClientFactory = elasticClientFactory; this.siteConfig = siteConfig; this.machineResourceService = machineResourceService; }
public void UpdatePrices_OnlyExtremaFlaggedAsUpdatedAreSendToRepository() { //Arrange QuotationUpdateTester quotationRepository = new QuotationUpdateTester(); PriceUpdateTester priceRepository = new PriceUpdateTester(); List <DataSet> dataSets = new List <DataSet>(); DataSet ds1 = utf.getDataSet(1); Quotation q1 = utf.getQuotation(ds1); Price p1 = utf.getPrice(ds1); DataSet ds2 = utf.getDataSet(2); Quotation q2 = utf.getQuotation(ds2); Price p2 = utf.getPrice(ds2); Extremum ex2 = new Extremum(p2, ExtremumType.PeakByClose); DataSet ds3 = utf.getDataSet(3); Quotation q3 = utf.getQuotation(ds3); Price p3 = utf.getPrice(ds3); Extremum ex3 = new Extremum(p3, ExtremumType.PeakByHigh); DataSet ds4 = utf.getDataSet(4); Quotation q4 = utf.getQuotation(ds4); Price p4 = utf.getPrice(ds4); dataSets.AddRange(new DataSet[] { ds1, ds2, ds3, ds4 }); //Act p2.Updated = true; p3.Updated = true; ex3.Updated = true; p4.New = true; IDataSetService service = new DataSetService(); service.InjectQuotationRepository(quotationRepository); service.InjectPriceRepository(priceRepository); service.UpdateDataSets(dataSets); //Assert IEnumerable <ExtremumDto> extremumDtos = priceRepository.GetExtremumDtosPassedForUpdate(); List <ExtremumDto> expectedExtremumDtos = new List <ExtremumDto>(); expectedExtremumDtos.AddRange(new ExtremumDto[] { ex3.ToDto() }); bool areEqual = expectedExtremumDtos.HasEqualItems(extremumDtos); Assert.IsTrue(areEqual); }
public void GetDataSets_ReturnsCollectionWithQuotationsOnly_IfGivenAnalysisTypesParameterIsInvalid() { //Arrange:QueryDef IEnumerable <AnalysisType> analysisTypes = new AnalysisType[] { }; AnalysisDataQueryDefinition queryDef = new AnalysisDataQueryDefinition(UTDefaulter.DEFAULT_ASSET_ID, UTDefaulter.DEFAULT_TIMEFRAME_ID) { AnalysisTypes = analysisTypes }; //Arrange:Quotations Mock <IQuotationRepository> quotationRepository = new Mock <IQuotationRepository>(); IEnumerable <QuotationDto> quotationDtos = utf.getDefaultQuotationDtosCollection(); quotationRepository.Setup(q => q.GetQuotations(queryDef)).Returns(quotationDtos); //Arrange:Prices Mock <IPriceRepository> priceRepository = new Mock <IPriceRepository>(); IEnumerable <PriceDto> priceDtos = utf.getDefaultPriceDtosCollection(); priceRepository.Setup(p => p.GetPrices(queryDef)).Returns(priceDtos); //Act IDataSetService service = new DataSetService(); service.InjectQuotationRepository(quotationRepository.Object); service.InjectPriceRepository(priceRepository.Object); var dataSets = service.GetDataSets(queryDef); //Assert DataSet ds1 = utf.getDataSet(1); ds1.SetQuotation(utf.getQuotation(ds1)); DataSet ds2 = utf.getDataSet(2); ds2.SetQuotation(utf.getQuotation(ds2)); DataSet ds3 = utf.getDataSet(3); ds3.SetQuotation(utf.getQuotation(ds3)); DataSet ds4 = utf.getDataSet(4); ds4.SetQuotation(utf.getQuotation(ds4)); IEnumerable <DataSet> expectedDataSets = new DataSet[] { ds1, ds2, ds3, ds4 }; var areEqual = expectedDataSets.HasEqualItems(dataSets); Assert.IsTrue(areEqual); }
public void GetDataSets_UseAlwaysExistingInstancesOfObjects_EvenIfThereIsAnotherOneInRepository() { //Arrange:QueryDef IEnumerable <AnalysisType> analysisTypes = new AnalysisType[] { AnalysisType.Prices }; AnalysisDataQueryDefinition queryDef = new AnalysisDataQueryDefinition(1, 1) { AnalysisTypes = analysisTypes }; //Arrange:Quotations Mock <IQuotationRepository> quotationRepository = new Mock <IQuotationRepository>(); IEnumerable <QuotationDto> quotationDtos = new QuotationDto[] { utf.getQuotationDto(1), utf.getQuotationDto(2), utf.getQuotationDto(3), utf.getQuotationDto(4) }; quotationRepository.Setup(q => q.GetQuotations(queryDef)).Returns(quotationDtos); //Arrange:Prices Mock <IPriceRepository> priceRepository = new Mock <IPriceRepository>(); IEnumerable <PriceDto> priceDtos = new PriceDto[] { utf.getPriceDto(1), utf.getPriceDto(2), utf.getPriceDto(3), utf.getPriceDto(4) }; priceRepository.Setup(p => p.GetPrices(queryDef)).Returns(priceDtos); //Act IDataSetService service = new DataSetService(); service.InjectQuotationRepository(quotationRepository.Object); service.InjectPriceRepository(priceRepository.Object); var dataSets = service.GetDataSets(queryDef); DataSet baseDataSet = dataSets.SingleOrDefault(ds => ds.IndexNumber == 2); Quotation stubQuotation = utf.getQuotation(2); stubQuotation.Open = stubQuotation.Open + 3; IEnumerable <Quotation> quotations = new Quotation[] { utf.getQuotation(1), stubQuotation, utf.getQuotation(3), utf.getQuotation(4) }; quotationRepository.Setup(q => q.GetQuotations(queryDef)).Returns(quotationDtos); service.InjectQuotationRepository(quotationRepository.Object); dataSets = service.GetDataSets(queryDef); DataSet comparedDataSet = dataSets.SingleOrDefault(ds => ds.IndexNumber == 2); //Assert var areTheSameObject = (baseDataSet.GetQuotation() == comparedDataSet.GetQuotation()); Assert.IsTrue(areTheSameObject); }
public void UpdateDataSets_OnlyQuotationsFlaggedAsUpdatedAreSendToRepository() { //Arrange QuotationUpdateTester quotationRepository = new QuotationUpdateTester(); PriceUpdateTester priceRepository = new PriceUpdateTester(); List <DataSet> dataSets = new List <DataSet>(); DataSet ds1 = utf.getDataSet(1); Quotation q1 = utf.getQuotation(ds1); Price p1 = utf.getPrice(ds1); DataSet ds2 = utf.getDataSet(2); Quotation q2 = utf.getQuotation(ds2); Price p2 = utf.getPrice(ds2); DataSet ds3 = utf.getDataSet(3); Quotation q3 = utf.getQuotation(ds3); Price p3 = utf.getPrice(ds3); DataSet ds4 = utf.getDataSet(4); Quotation q4 = utf.getQuotation(ds4); Price p4 = utf.getPrice(ds4); dataSets.AddRange(new DataSet[] { ds1, ds2, ds3, ds4 }); //Act q1.Updated = true; q3.Updated = true; q4.New = true; IDataSetService service = new DataSetService(); service.InjectQuotationRepository(quotationRepository); service.InjectPriceRepository(priceRepository); service.UpdateDataSets(dataSets); //Assert IEnumerable <QuotationDto> passedDtos = quotationRepository.GetQuotationDtosPassedForUpdate(); List <QuotationDto> expectedDtos = new List <QuotationDto>(); expectedDtos.AddRange(new QuotationDto[] { q1.ToDto(), q3.ToDto(), q4.ToDto() }); bool areEqual = expectedDtos.HasEqualItems(passedDtos); Assert.IsTrue(areEqual); }
internal void UpdateClusterStatus(BaseJobBEO job) { try { dynamic bootParameters; StringReader stream; XmlSerializer xmlStream; switch (job.JobTypeId) { case 2: case 8: stream = new StringReader(job.BootParameters); xmlStream = new XmlSerializer(typeof(ProfileBEO)); bootParameters = xmlStream.Deserialize(stream); stream.Close(); var profileBeo = bootParameters as ProfileBEO; if (profileBeo != null) { var dataSetService = new DataSetService(EstablishSession(profileBeo.CreatedBy)); dataSetService.UpdateClusterStatus(profileBeo.DatasetDetails.FolderID.ToString(), ClusterStatus.OutOfDate.ToString()); } break; case 14: stream = new StringReader(job.BootParameters); xmlStream = new XmlSerializer(typeof(ImportBEO)); bootParameters = xmlStream.Deserialize(stream); stream.Close(); var importBeo = bootParameters as ImportBEO; if (importBeo != null) { var dataSetService = new DataSetService(EstablishSession(importBeo.CreatedBy)); dataSetService.UpdateClusterStatus(importBeo.DatasetId.ToString(), ClusterStatus.OutOfDate.ToString()); } break; } } catch (Exception ex) { ex.AddDbgMsg("Unable to update cluster status to out of date by Job Id: {0}", job.JobId); ex.Trace(); } }
public void GetDataSets_ReturnsCollectionWithoutSomeAnalysisType_IfThereIsNoDataForThisType() { //Arrange:QueryDef IEnumerable <AnalysisType> analysisTypes = new AnalysisType[] { AnalysisType.Prices }; AnalysisDataQueryDefinition queryDef = new AnalysisDataQueryDefinition(UTDefaulter.DEFAULT_ASSET_ID, UTDefaulter.DEFAULT_TIMEFRAME_ID) { AnalysisTypes = analysisTypes }; //Arrange:Quotations Mock <IQuotationRepository> quotationRepository = new Mock <IQuotationRepository>(); IEnumerable <QuotationDto> quotationDtos = new QuotationDto[] { utf.getQuotationDto(2), utf.getQuotationDto(3), utf.getQuotationDto(4) }; quotationRepository.Setup(q => q.GetQuotations(queryDef)).Returns(quotationDtos); //Arrange:Prices Mock <IPriceRepository> priceRepository = new Mock <IPriceRepository>(); IEnumerable <PriceDto> priceDtos = new PriceDto[] { utf.getPriceDto(3), utf.getPriceDto(4), utf.getPriceDto(5), utf.getPriceDto(6) }; priceRepository.Setup(p => p.GetPrices(queryDef)).Returns(priceDtos); //Act IDataSetService service = new DataSetService(); service.InjectQuotationRepository(quotationRepository.Object); service.InjectPriceRepository(priceRepository.Object); var dataSets = service.GetDataSets(queryDef); //Assert DataSet ds2 = utf.getDataSet(2); ds2.SetQuotation(utf.getQuotation(ds2)); DataSet ds3 = utf.getDataSet(3); ds3.SetQuotation(utf.getQuotation(ds3)).SetPrice(utf.getPrice(ds3)); DataSet ds4 = utf.getDataSet(4); ds4.SetQuotation(utf.getQuotation(ds4)).SetPrice(utf.getPrice(ds4)); IEnumerable <DataSet> expectedDataSets = new DataSet[] { ds2, ds3, ds4 }; var areEqual = expectedDataSets.HasEqualItems(dataSets); Assert.IsTrue(areEqual); }
private ImportData() { _dataSetService = new DataSetService(); _orderDictionary = new Dictionary <string, string>() { { FileHeaderConstant.No, Order.Asc }, { FileHeaderConstant.Name, Order.Asc }, { FileHeaderConstant.DateModified, Order.Asc }, { FileHeaderConstant.Label, Order.Asc }, }; _labelFiles = new List <LabelFileModel>(); _imageFiles = new List <ImageFileModel>(); InitializeComponent(); SetBorderAndGridlineStyles(); ImageNumber.Text = "0"; LabelNumber.Text = "0"; TrainBtn.Enabled = false; //PreviousBtn.Enabled = false; //NextBtn.Enabled = false; }
public IActionResult Get(string name) { dataSetService.ThrowIfDataSetIsBusy(name); var validationResultString = DataSetService.ValidateDataSetName(name); if (validationResultString.Any()) { return(HttpErrorResult(StatusCodes.Status400BadRequest, validationResultString)); } if (!dataSetService.IsExists(name)) { return(HttpErrorResult(StatusCodes.Status404NotFound, string.Format(DataSetResources.DataSet_0_IsNotFound, name))); } var dataSet = dataSetService.Get(name); return(new OkObjectResult(dataSet)); }
public void GetDataSetsWithInitialCollection_ReturnsProperlyFilledAndIndexedArray_IfNullArrayWasPassedAndSomeDataWereAppended() { //Arrange IEnumerable <AnalysisType> analysisTypes = new AnalysisType[] { AnalysisType.Quotations, AnalysisType.Prices }; AnalysisDataQueryDefinition queryDef = new AnalysisDataQueryDefinition(UTDefaulter.DEFAULT_ASSET_ID, UTDefaulter.DEFAULT_TIMEFRAME_ID) { AnalysisTypes = analysisTypes }; Mock <IQuotationRepository> quotationRepository = new Mock <IQuotationRepository>(); Mock <IPriceRepository> priceRepository = new Mock <IPriceRepository>(); //Act IDataSetService service = new DataSetService(); IEnumerable <QuotationDto> quotationDtos = new QuotationDto[] { utf.getQuotationDto(101), utf.getQuotationDto(102), utf.getQuotationDto(103) }; quotationRepository.Setup(q => q.GetQuotations(queryDef)).Returns(quotationDtos); IEnumerable <PriceDto> priceDtos = new PriceDto[] { utf.getPriceDto(101), utf.getPriceDto(102), utf.getPriceDto(103) }; priceRepository.Setup(q => q.GetPrices(queryDef)).Returns(priceDtos); service.InjectQuotationRepository(quotationRepository.Object); service.InjectPriceRepository(priceRepository.Object); DataSet[] result = service.GetDataSets(queryDef, new List <DataSet>()).ToArray(); //Assert DataSet[] expectedDataSets = new DataSet[104]; DataSet ds101 = utf.getDataSet(101); ds101.SetQuotation(utf.getQuotation(ds101)).SetPrice(utf.getPrice(ds101)); DataSet ds102 = utf.getDataSet(102); ds102.SetQuotation(utf.getQuotation(ds102)).SetPrice(utf.getPrice(ds102)); DataSet ds103 = utf.getDataSet(103); ds103.SetQuotation(utf.getQuotation(ds103)).SetPrice(utf.getPrice(ds103)); expectedDataSets[101] = ds101; expectedDataSets[102] = ds102; expectedDataSets[103] = ds103; var areEqual = expectedDataSets.HasEqualItemsInTheSameOrder(result); Assert.IsTrue(areEqual); }
public void GetDataSets_ReturnsCollectionWithExistingItems() { //Arrange:QueryDef IEnumerable <AnalysisType> analysisTypes = new AnalysisType[] { AnalysisType.Prices }; DateTime startDate = new DateTime(2016, 1, 15, 22, 30, 0); DateTime endDate = new DateTime(2016, 1, 15, 22, 50, 0); AnalysisDataQueryDefinition queryDef = new AnalysisDataQueryDefinition(1, 1) { AnalysisTypes = analysisTypes, StartDate = startDate, EndDate = endDate }; //Arrange:Quotations Mock <IQuotationRepository> quotationRepository = new Mock <IQuotationRepository>(); IEnumerable <QuotationDto> quotationDtos = new QuotationDto[] { utf.getQuotationDto(1), utf.getQuotationDto(2), utf.getQuotationDto(3), utf.getQuotationDto(4) }; quotationRepository.Setup(q => q.GetQuotations(queryDef)).Returns(quotationDtos); //Arrange:Prices Mock <IPriceRepository> priceRepository = new Mock <IPriceRepository>(); IEnumerable <PriceDto> priceDtos = new PriceDto[] { utf.getPriceDto(1), utf.getPriceDto(2), utf.getPriceDto(3), utf.getPriceDto(4) }; priceRepository.Setup(p => p.GetPrices(queryDef)).Returns(priceDtos); //Act IDataSetService service = new DataSetService(); service.InjectQuotationRepository(quotationRepository.Object); service.InjectPriceRepository(priceRepository.Object); var dataSets = service.GetDataSets(queryDef); DataSet baseDataSet = dataSets.SingleOrDefault(ds => ds.IndexNumber == 1); queryDef.StartDate = new DateTime(2016, 1, 15, 22, 25, 0); dataSets = service.GetDataSets(queryDef); DataSet comparedDataSet = dataSets.SingleOrDefault(ds => ds.IndexNumber == 1); //Assert var areTheSameObject = (baseDataSet == comparedDataSet); Assert.IsTrue(areTheSameObject); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { //-------------------- // Knowledge Service // (Central Knowledge Service) IKnowledgeService knowledgeService = new KnowledgeService(); //-------------------- // DataSetService // (Central Persistence Service) DataSetService dataService = new DataSetService(knowledgeService); IRequestDataSet requestService = dataService as IRequestDataSet; ISendSymptome sendService = dataService as ISendSymptome; //-------------------- // Data Response Service // provide feedback to users IResponseService responseService = new ResponseService(requestService, knowledgeService); //-------------------- // Analyzing Data // PDA - Probabilistic Data Analysis // PGA - Probabilistic Gradient Analysis (not implemented) var pdaService = new pdaService(requestService, knowledgeService); //var pgaService = new pgaService(requestService); //-------------------- // Register Services at IC-Container services.AddSingleton <IRequestDataSet>(dataService); services.AddSingleton <ISendSymptome>(dataService); services.AddSingleton <IKnowledgeService>(knowledgeService); services.AddSingleton <IResponseService>(responseService); services.AddHostedService <pdaService>(); // services.AddHostedService<pgaService>(); services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1); }
/// <summary> /// Atomic work 1) Delete search sub-system Data 2) Delete Vault Data 3) Delete EVMaster Data /// </summary> /// <param name="task"></param> /// <param name="jobParameters"></param> /// <returns></returns> protected override bool DoAtomicWork(UpdateReviewSetTaskBEO task, UpdateReviewSetJobBEO jobParameters) { bool output = false; try { //Fetching the dataset details DataSetService.GetDataSet(task.DatasetId.ToString(CultureInfo.InvariantCulture)); string activity = task.Activity; switch (activity) { case Constants.Add: { //Assigning the reviewset id to the documents IEnumerable <ReviewsetDocumentBEO> rsDocBeoList = PopulateReviewSetDocumentEntites(task, task.Documents, jobParameters.CreatedByGUID); AddDocumentsBychunk(task.DatasetId.ToString(CultureInfo.InvariantCulture), task.reviewSetId, rsDocBeoList); //Update Review set service task.NumberOfDocuments += rsDocBeoList.Count(); task.StatusId = 1; task.Action = "Add"; task.IsAuditable = true; ReviewSetService.UpdateReviewSetJob(task); break; } case Constants.Remove: { //Assigning the reviewset id to the documents IEnumerable <ReviewsetDocumentBEO> rsDocBeoList = PopulateReviewSetDocumentEntites(task, task.Documents, jobParameters.CreatedByGUID); //Remove documents from vault and search sub-system RemoveDocumentsBychunk(task.DatasetId.ToString(CultureInfo.InvariantCulture), task.reviewSetId, rsDocBeoList); //Update Review set service task.NumberOfDocuments -= rsDocBeoList.Count(); task.StatusId = 1; task.Action = "Remove"; task.IsAuditable = true; ReviewSetService.UpdateReviewSetJob(task); break; } case Constants.Archive: { if (task.Documents.Count > 0) { //Assigning the reviewset id to the documents IEnumerable <ReviewsetDocumentBEO> rsDocBeoList = PopulateReviewSetDocumentEntites(task, task.Documents, jobParameters.CreatedByGUID); //Remove documents from vault and search sub-system RemoveDocumentsBychunk(task.DatasetId.ToString(CultureInfo.InvariantCulture), task.reviewSetId, rsDocBeoList); } //Update Review set service - Archiving ReviewSetService.UpdateReviewSetJob(task); break; } default: { //If the reviewset is getting archived if (task.StatusId.Equals(2)) { //Assigning the reviewset id to the documents IEnumerable <ReviewsetDocumentBEO> rsDocBeoList = PopulateReviewSetDocumentEntites(task, task.Documents, jobParameters.CreatedByGUID); //Remove documents from vault and search sub-system RemoveDocumentsBychunk(task.DatasetId.ToString(CultureInfo.InvariantCulture), task.reviewSetId, rsDocBeoList); //Update Review set service - Archiving ReviewSetService.UpdateReviewSetJob(task); } break; } } } catch (Exception ex) { ex.AddDbgMsg("Problem in DoAtomicWork of the UpdateReviewset"); ex.Trace().Swallow(); } return(output); }
/// <summary> /// Generates No.of Reviewsets to be created tasks /// </summary> /// <param name="jobParameters">Create Reviewset BEO</param> /// <param name="lastCommitedTaskCount"> </param> /// <returns>List of Create ReviewsetJob Tasks (BEOs)</returns> protected override Tasks <UpdateReviewSetTaskBEO> GenerateTasks(UpdateReviewSetJobBEO jobParameters, out int lastCommitedTaskCount) { Tasks <UpdateReviewSetTaskBEO> tasks = new Tasks <UpdateReviewSetTaskBEO>(); lastCommitedTaskCount = 0; try { if (jobParameters != null) { /* Get Dataset Details for dataset id to get know about the Collection id and the Matter ID*/ DatasetBEO datasetEntity = DataSetService.GetDataSet(jobParameters.datasetId.ToString(CultureInfo.InvariantCulture)); string sMatterId = datasetEntity.Matter.FolderID.ToString(CultureInfo.InvariantCulture); var _reviewSetEntity = ReviewSetBO.GetReviewSetDetails(sMatterId, jobParameters.ReviewSetId); List <FilteredDocumentBusinessEntity> qualifiedDocuments = null; if (jobParameters.Activity.Equals(Constants.Add)) { qualifiedDocuments = GetQualifiedDocuments(jobParameters, jobParameters.datasetId.ToString(CultureInfo.InvariantCulture), sMatterId, _reviewSetEntity.BinderId, Constants.Add); } else if (jobParameters.Activity.Equals(Constants.Remove) || jobParameters.Activity.Equals(Constants.Archive)) { qualifiedDocuments = GetQualifiedDocuments(jobParameters, jobParameters.datasetId.ToString(CultureInfo.InvariantCulture), sMatterId, _reviewSetEntity.BinderId, Constants.Remove); } jobParameters.Documents.Clear(); if (qualifiedDocuments != null && qualifiedDocuments.Count > 0) { List <RVWDocumentBEO> iterationDocuments = qualifiedDocuments. Select(d => new RVWDocumentBEO { DocumentId = d.Id, MatterId = Convert.ToInt64(d.MatterId), CollectionId = d.CollectionId, FamilyId = d.FamilyId, DocumentControlNumber = d.DCN, DuplicateId = d.DuplicateId }).ToList(); jobParameters.Documents.AddRange(iterationDocuments); } UpdateReviewSetTaskBEO updateReviewSetTaskBeo = ConvertToTaskBeo(jobParameters, _reviewSetEntity); tasks.Add(updateReviewSetTaskBeo); for (int i = 1; i <= tasks.Count; i++) { tasks[i - 1].TaskNumber = i; } } else { lastCommitedTaskCount = 0; EvLog.WriteEntry(Constants.JobLogName + Constants.GenerateTasks, Constants.JobParamND, EventLogEntryType.Error); JobLogInfo.AddParameters(Constants.JobParamND); JobLogInfo.IsError = true; } } catch (Exception ex) { LogException(JobLogInfo, ex, LogCategory.Job, ErrorCodes.ProblemInGenerateTasks, string.Empty); } return(tasks); }
public DataSetController(DataSetService dataSetService) { _dataSetService = dataSetService; }
public WeightDetail() { _dataSetService = new DataSetService(); _weightService = new WeightService(); InitializeComponent(); }
/// <summary> /// Generates DataSet Delete tasks /// </summary> /// <param name="jobParameters">DataSet Delete Job BEO</param> /// <param name="previouslyCommittedTaskCount">int</param> /// <returns>List of DataSet DeleteJob Tasks (BEOs)</returns> protected override Tasks <DeleteDataSetTaskBEO> GenerateTasks(DeleteDataSetJobBEO jobParameters, out int previouslyCommittedTaskCount) { Tasks <DeleteDataSetTaskBEO> tasks = null; previouslyCommittedTaskCount = 0; try { // Message that Generate Tasks called. LogMessage(String.Format(Constants.JobGenerateTasksInitialized, jobParameters.JobId), false, LogCategory.Job, null); EvLog.WriteEntry(String.Format(Constants.JobGenerateTasksInitialized, jobParameters.JobId), String.Format(Constants.JobGenerateTasksInitialized, jobParameters.JobId), EventLogEntryType.Information); var docCount = MatterBO.GetDocumentCount(Convert.ToInt64(jobParameters.MatterId), new List <string>() { jobParameters.CollectionId }); var dataSetDocuments = new List <ReIndexDocumentBEO>(); if (docCount > 0) { var nMessages = (Int32)(Math.Ceiling((double)docCount / m_ReadChunkSize)); //Convert.ToInt32(docCount / m_ReadChunkSize) + (docCount % m_ReadChunkSize > 0 ? 1 : 0); var processed = 0; //Loop through and send the request in batches for (var pageIdx = 1; pageIdx <= nMessages; pageIdx++) { var pgSize = 0; //Determine the page size and processed count if (nMessages == 1) { pgSize = (Int32)docCount; } else if (nMessages > 1 && pageIdx == nMessages) { pgSize = (Int32)docCount - processed; } else { pgSize = m_ReadChunkSize; } var batchDocuments = MatterBO.GetCollectionDocuments(Convert.ToInt64(jobParameters.MatterId), pageIdx, m_ReadChunkSize, new List <string>() { jobParameters.CollectionId }); if (batchDocuments != null && batchDocuments.Any()) { dataSetDocuments.AddRange(batchDocuments); } processed += pgSize; } } //Get matter details for matter id var matterDetail = MatterServices.GetMatterDetails(jobParameters.MatterId); var dataSetDetail = DataSetBO.GetDataSetDetailForDataSetId(jobParameters.DataSetId); //Get all document sets for dataset id var lstDocumentSet = DataSetService.GetAllDocumentSet(jobParameters.DataSetId.ToString()); tasks = GetTaskList <DeleteDataSetJobBEO, DeleteDataSetTaskBEO>(jobParameters); previouslyCommittedTaskCount = tasks.Count; var documentTaskCount = (Int32)(Math.Ceiling((double)dataSetDocuments.Count / m_WindowSize)); m_NumberOfTasks = documentTaskCount + lstDocumentSet.Count + 1; double taskPercent = (100.0 / m_NumberOfTasks); int taskNumber = 0; DeleteDataSetTaskBEO deleteDataSetTaskBeo; // Create tasks for the documents in group for (taskNumber = 0; taskNumber < documentTaskCount; taskNumber++) { deleteDataSetTaskBeo = new DeleteDataSetTaskBEO { TaskNumber = taskNumber + 1, TaskComplete = false, TaskPercent = taskPercent, DataSetId = jobParameters.DataSetId, DataSetName = jobParameters.DataSetName, DocumentSetId = jobParameters.CollectionId, DeletedBy = jobParameters.DeletedBy, DocumentId = dataSetDocuments.GetRange(taskNumber * m_WindowSize, Math.Min((dataSetDocuments.Count - (taskNumber * m_WindowSize)), m_WindowSize)) .Select(d => d.DocumentReferenceId) .ToList(), MatterDBName = matterDetail.MatterDBName, IsDocumentDelete = true }; tasks.Add(deleteDataSetTaskBeo); } // Create the task for the non-native document sets (production & image sets) var nonNativeSets = lstDocumentSet.Where(ds => ds.DocumentSetTypeId != "2"); foreach (var docset in nonNativeSets) { taskNumber += 1; deleteDataSetTaskBeo = new DeleteDataSetTaskBEO { TaskNumber = taskNumber, TaskComplete = false, TaskPercent = taskPercent, DataSetId = jobParameters.DataSetId, DataSetName = jobParameters.DataSetName, DeletedBy = jobParameters.DeletedBy, DocumentId = new List <string>(), MatterDBName = matterDetail.MatterDBName, DocumentSetId = docset.DocumentSetId, DocumentSetTypeId = docset.DocumentSetTypeId, IsDocumentDelete = false }; tasks.Add(deleteDataSetTaskBeo); } // Create the task for only the native document sets var nativeSet = lstDocumentSet.Where(ds => ds.DocumentSetTypeId == "2"); foreach (var docset in nativeSet) { taskNumber += 1; deleteDataSetTaskBeo = new DeleteDataSetTaskBEO { TaskNumber = taskNumber, TaskComplete = false, TaskPercent = taskPercent, DataSetId = jobParameters.DataSetId, DataSetName = jobParameters.DataSetName, DeletedBy = jobParameters.DeletedBy, DocumentId = new List <string>(), MatterDBName = matterDetail.MatterDBName, DocumentSetId = docset.DocumentSetId, DocumentSetTypeId = docset.DocumentSetTypeId, IsDocumentDelete = false }; tasks.Add(deleteDataSetTaskBeo); } taskNumber += 1; deleteDataSetTaskBeo = new DeleteDataSetTaskBEO { TaskNumber = taskNumber, TaskComplete = false, TaskPercent = 100, DataSetId = jobParameters.DataSetId, DataSetName = jobParameters.DataSetName, DeletedBy = jobParameters.DeletedBy, DocumentId = new List <string>(), DocumentSetId = jobParameters.CollectionId, MatterDBName = matterDetail.MatterDBName, IsDocumentDelete = false, DocumentSets = lstDocumentSet, ExtractionPath = dataSetDetail.CompressedFileExtractionLocation, DocumentSetTypeId = string.Empty }; tasks.Add(deleteDataSetTaskBeo); for (int i = 1; i <= tasks.Count; i++) { tasks[i - 1].TaskNumber = i; } } catch (EVException ex) { LogToEventLog(ex, GetType(), MethodInfo.GetCurrentMethod().Name, jobParameters.JobId, jobParameters.JobRunId); HandleJobException(GetEvExceptionDescription(ex), null, ErrorCodes.ProblemInGenerateTasks); } catch (Exception ex) { // Handle exception in initialize HandleJobException(String.Format(Constants.JobGenerateTasksException, jobParameters.JobId), ex, ErrorCodes.ProblemInGenerateTasks); LogMessage(ex, GetType(), MethodInfo.GetCurrentMethod().Name, EventLogEntryType.Error, jobParameters.JobId, jobParameters.JobRunId); } return(tasks); }
public DataSetsController(DataSetService dataSetService, IDocumentService documentService) { this.documentService = documentService; this.dataSetService = dataSetService; }
/// <summary> /// Generates No.of Reviewsets to be created tasks /// </summary> /// <param name="jobParameters">Create Reviewset BEO</param> /// <param name="lastCommitedTaskCount">int</param> /// <returns>List of Create ReviewsetJob Tasks (BEOs)</returns> protected override Tasks <MergeReviewSetTaskBEO> GenerateTasks(MergeReviewSetJobBEO jobParameters, out int lastCommitedTaskCount) { Tasks <MergeReviewSetTaskBEO> tasks = new Tasks <MergeReviewSetTaskBEO>(); lastCommitedTaskCount = 0; try { if (jobParameters != null) { string datasetId = jobParameters.DatasetId.ToString(CultureInfo.InvariantCulture); /* Get Dataset Details for dataset id to get know about the Collection id and the Matter ID*/ DatasetBEO datasetEntity = DataSetService.GetDataSet(datasetId); string sMatterId = datasetEntity.Matter.FolderID.ToString(CultureInfo.InvariantCulture); jobParameters.Activity = Constants.Create; List <RVWDocumentBEO> docList = new List <RVWDocumentBEO>(); List <MergeReviewSetTaskBEO> mergedRsList = new List <MergeReviewSetTaskBEO>(); foreach (string reviewsetId in jobParameters.MergedReviewSetIds) { ReviewsetDetailsBEO reviewsetDetailsBeo = ReviewSetService.GetReviewSetDetails(sMatterId, reviewsetId); ReviewerSearchResults qualifiedDocuments = new ReviewerSearchResults(); jobParameters.ReviewSetId = reviewsetId; var queryContext = ConstructDocQueryEntity(jobParameters, datasetEntity); queryContext.TransactionName = "MergeReviewSetJob - DoAtomicWork"; ReviewerSearchResults searchDocs = JobSearchHandler.GetAllDocuments(queryContext, false); if (searchDocs != null) { searchDocs.ResultDocuments.SafeForEach(x => qualifiedDocuments.ResultDocuments.Add(x)); } List <RVWDocumentBEO> iterationDocuments = qualifiedDocuments.ResultDocuments. Select(d => new RVWDocumentBEO { DocumentId = d.DocumentID, MatterId = d.MatterID, CollectionId = d.CollectionID, FamilyId = d.FamilyID }).ToList(); reviewsetDetailsBeo.Documents.Clear(); reviewsetDetailsBeo.Documents.AddRange(iterationDocuments); reviewsetDetailsBeo.StatusId = 2; MergeReviewSetTaskBEO mReviewsetDetailsBeo = ConvertToTaskBeo(reviewsetDetailsBeo); docList.AddRange(reviewsetDetailsBeo.Documents); mergedRsList.Add(mReviewsetDetailsBeo); } jobParameters.Documents.AddRange(docList); tasks.Add(mergedRsList); MergeReviewSetTaskBEO lstUpdateReviewSetTaskBeo = ConvertToTaskBeo(jobParameters); tasks.Add(lstUpdateReviewSetTaskBeo); for (int i = 1; i <= tasks.Count; i++) { tasks[i - 1].TaskNumber = i; } } else { lastCommitedTaskCount = 0; EvLog.WriteEntry(Constants.JobLogName + Constants.GenerateTasks, Constants.JobParamND, EventLogEntryType.Error); JobLogInfo.AddParameters(Constants.JobParamND); JobLogInfo.IsError = true; } } catch (Exception ex) { LogException(JobLogInfo, ex, LogCategory.Job, string.Empty, ErrorCodes.ProblemInGenerateTasks); } return(tasks); }