public IHttpActionResult GetSituation([FromBody] SourceAndId sai) { Situation selectedSituation; if (sai.sourceType) { selectedSituation = OwlWorker.GetSituation(sai.id); var gw = new GraphWorker(); selectedSituation = gw.FillCoordinates(selectedSituation, gw.MakeGraph(gw.SituationToGraph(selectedSituation.participants))); } else { var noSqlWorker = new NoSqlWorker(); noSqlWorker.Initialization(); selectedSituation = noSqlWorker.GetSituation(sai.id); if ((selectedSituation.coordinates == null) || (selectedSituation.coordinates.Count == 0)) { selectedSituation.coordinates = new List <Coordinate>(); var gw = new GraphWorker(); selectedSituation = gw.FillCoordinates(selectedSituation, gw.MakeGraph(gw.SituationToGraph(selectedSituation.participants))); } } if (selectedSituation == null) { return(NotFound()); } return(Ok(selectedSituation)); }
public void TestEndlessLoop1() { var department5Stamp = new Stamp(); var department4 = new FinishDepartment(); var department3 = new ConditionalDepartment( stampCondition: department5Stamp, ifDepartment: new UnconditionalDepartment(department4), elseDepartment: new UnconditionalDepartment() ); var department2 = new UnconditionalDepartment(department3); var department1 = new UnconditionalDepartment(department2); department3.ElseDepartment.SetNextDepartment(department2); var graphWorker = new GraphWorker( startDepartment: department1, finishDepartment: department4, targetDepartment: department4 ); graphWorker.Start(); graphWorker.Wait(); IReadOnlyList <IReadOnlyList <Stamp> > output = new List <List <Stamp> >(); Assert.True(IsEqual(graphWorker.GetResult(), output)); Assert.True(graphWorker.IsEndlessLoop()); }
public void Test1() { var department3 = new FinishDepartment(); var department2 = new UnconditionalDepartment(department3); var department1 = new UnconditionalDepartment(department2) { NewStamp = new Stamp() }; var graphWorker = new GraphWorker( startDepartment: department1, finishDepartment: department3, targetDepartment: department2 ); graphWorker.Start(); graphWorker.Wait(); IReadOnlyList <IReadOnlyList <Stamp> > output = new List <List <Stamp> > { new List <Stamp> { department1.NewStamp } }; Assert.True(IsEqual(graphWorker.GetResult(), output)); Assert.True(!graphWorker.IsEndlessLoop()); }
public void MakeGraphGraphMakeTest() { GraphWorker gw = new GraphWorker(); //var i = gw.MakeGraph(); Assert.Fail(); }
public void ToGraphTest() { //load situation var noSqlWorker = new NoSqlWorker(); noSqlWorker.Initialization(); var selectedSituation = noSqlWorker.GetSituation(13500410); //graph var gw = new GraphWorker(); var output = gw.SituationToGraph(selectedSituation.participants); }
public void ToCoordinateFromStringGraphTest() { //load situation var noSqlWorker = new NoSqlWorker(); noSqlWorker.Initialization(); var selectedSituation = noSqlWorker.GetSituation(13500410); //graph var gw = new GraphWorker(); var output = gw.SituationToGraph(selectedSituation.participants); var outputWithCoordinates = gw.MakeGraph(output); var outputCoordinates = gw.FillCoordinates(selectedSituation, outputWithCoordinates); }
public void TestLoop1() { var department5 = new FinishDepartment(); var department4 = new UnconditionalDepartment() { NewStamp = new Stamp() }; var department3 = new ConditionalDepartment( stampCondition: department4.NewStamp, ifDepartment: new UnconditionalDepartment(department5) { NewStamp = new Stamp() }, elseDepartment: new UnconditionalDepartment(department4) { NewStamp = new Stamp() } ); var department2 = new UnconditionalDepartment(department3) { NewStamp = new Stamp() }; var department1 = new UnconditionalDepartment(department2) { NewStamp = new Stamp() }; department4.SetNextDepartment(department2); var graphWorker = new GraphWorker( startDepartment: department1, finishDepartment: department5, targetDepartment: department5 ); graphWorker.Start(); graphWorker.Wait(); IReadOnlyList <IReadOnlyList <Stamp> > output = new List <List <Stamp> > { new List <Stamp> { department1.NewStamp, department2.NewStamp, department3.ElseDepartment.NewStamp, department4.NewStamp, department3.IfDepartment.NewStamp } }; Assert.True(IsEqual(graphWorker.GetResult(), output)); Assert.True(!graphWorker.IsEndlessLoop()); }
public string GetOneSituationNewCoordinate(string idInJson) { var noSqlWorker = new NoSqlWorker(); noSqlWorker.Initialization(); var id = JsonConvert.DeserializeObject <int>(idInJson); var selectedSituation = noSqlWorker.GetSituation(id); //graph var gw = new GraphWorker(); var output = gw.SituationToGraph(selectedSituation.participants); var outputWithCoordinates = gw.MakeGraph(output); var outputSituation = gw.FillCoordinates(selectedSituation, outputWithCoordinates); return(new JavaScriptSerializer().Serialize(outputSituation)); }
public async Task <IHttpActionResult> PostFromConstructor() { if (!Request.Content.IsMimeMultipartContent()) { return(BadRequest()); } var provider = new MultipartMemoryStreamProvider(); // путь к папке на сервере string root = HttpContext.Current.Server.MapPath("~/App_Data/"); await Request.Content.ReadAsMultipartAsync(provider); Situation newSit = null; foreach (var file in provider.Contents) { var filename = file.Headers.ContentDisposition.FileName.Trim('\"'); var owlString = file.ReadAsStringAsync(); ImportFromConstructor ifc = new ImportFromConstructor(); newSit = ifc.load_pps(owlString.Result); newSit.create_date = DateTime.Today; newSit.coordinates = new List <Coordinate>(); var gw = new GraphWorker(); newSit = gw.FillCoordinates(newSit, gw.MakeGraph(gw.SituationToGraph(newSit.participants))); var noSqlWorker = new NoSqlWorker(); noSqlWorker.Initialization(); noSqlWorker.Insert(newSit); //byte[] fileArray = await file.ReadAsByteArrayAsync(); //using (System.IO.FileStream fs = new System.IO.FileStream(root + filename, System.IO.FileMode.Create)) //{ // await fs.WriteAsync(fileArray, 0, fileArray.Length); //} } if (newSit == null) { return(NotFound()); } return(Ok(newSit)); }
public void TestLoop2() { var d9 = new UnconditionalDepartment() { NewStamp = new Stamp() }; var d8 = new UnconditionalDepartment() { NewStamp = new Stamp() }; var d7 = new UnconditionalDepartment() { NewStamp = new Stamp() }; var d6 = new FinishDepartment(); var d5 = new ConditionalDepartment( stampCondition: d9.NewStamp, ifDepartment: new UnconditionalDepartment(d6) { NewStamp = new Stamp() }, elseDepartment: new UnconditionalDepartment(d9) { NewStamp = new Stamp() } ); var d4 = new ConditionalDepartment( stampCondition: d8.NewStamp, ifDepartment: new UnconditionalDepartment(d5) { NewStamp = new Stamp() }, elseDepartment: new UnconditionalDepartment(d8) { NewStamp = new Stamp() } ); var d3 = new ConditionalDepartment( stampCondition: d7.NewStamp, ifDepartment: new UnconditionalDepartment(d4) { NewStamp = new Stamp() }, elseDepartment: new UnconditionalDepartment(d7) { NewStamp = new Stamp() } ); var d2 = new UnconditionalDepartment(d3) { NewStamp = new Stamp() }; var d1 = new UnconditionalDepartment(d2); d9.SetNextDepartment(d2); d8.SetNextDepartment(d2); d7.SetNextDepartment(d2); var graphWorker = new GraphWorker( startDepartment: d1, finishDepartment: d6, targetDepartment: d2 ); graphWorker.Start(); graphWorker.Wait(); IReadOnlyList <IReadOnlyList <Stamp> > output = new List <List <Stamp> > { new List <Stamp> { d2.NewStamp }, new List <Stamp> { d2.NewStamp, d3.ElseDepartment.NewStamp, d7.NewStamp }, new List <Stamp> { d2.NewStamp, d3.ElseDepartment.NewStamp, d7.NewStamp, d3.IfDepartment.NewStamp, d4.ElseDepartment.NewStamp, d8.NewStamp }, new List <Stamp> { d2.NewStamp, d3.ElseDepartment.NewStamp, d7.NewStamp, d3.IfDepartment.NewStamp, d4.ElseDepartment.NewStamp, d8.NewStamp, d4.IfDepartment.NewStamp, d5.ElseDepartment.NewStamp, d9.NewStamp } }; Assert.True(IsEqual(graphWorker.GetResult(), output)); Assert.True(!graphWorker.IsEndlessLoop()); }