protected override async Task <ErrorList> DoReadAsync(object options, CancellationToken token = default) { var output = await SalesOrder_ReadListAsync(options, CriteriaObject?.ToDataContract <SalesOrder_ReadListInput_Criteria>(options)); return(output.Messages); }
protected override ErrorList DoRead(object options) { var output = SalesOrder_ReadList( CriteriaObject == null ? null : CriteriaObject.ToDataContract <SalesOrder_ReadListInput_Criteria>(options), options); return(output.Messages); }
private void AnalyzePlaceButton_Click(object sender, EventArgs e) { if (!coordinatesAnalyze.IsEmpty) { var pointDictionary = AreaColors(PointSide); using (StreamWriter writer = new StreamWriter($@"{ProjectDir}\pointColors.txt")) { foreach (KeyValuePair <string, ColorInfo> keyValue in pointDictionary.OrderByDescending(elem => elem.Value.ColorCount)) { writer.WriteLine($"{keyValue.Key} : {keyValue.Value.ColorCount}"); } } var pointAnalyze = ColorsAnalyze(pointDictionary); var fragmentDictionary = AreaColors(RectSide); var fragmentAnalyze = ColorsAnalyze(fragmentDictionary); var analyze = new StringBuilder(); if (detectSizeRadio.Checked) { ImageColors(fragmentAnalyze); var imageObjectsParameters = FragmentObjectsSizeAnalyze(fragmentAnalyze); var imageObjectsParametersPresence = imageObjectsParameters.Where(param => param.Value.Count > 0); if (imageObjectsParametersPresence.Any()) { foreach (var elem in imageObjectsParametersPresence) { var objectName = elem.Key; analyze.AppendLine(DetectObjectName(objectName)); foreach (var objectParameters in elem.Value) { if (objectParameters.Area > 1) { analyze.AppendLine($"Длина = {objectParameters.ArcLength}, площадь: {objectParameters.Area}"); } } } } } var criteriaFragmentAnalyze = CriteriaObject.GetInstance().CalculateAnalyze(fragmentAnalyze); var criteriaPointAnalyze = CriteriaObject.GetInstance().CalculateAnalyze(pointAnalyze, true); analyze.AppendLine(criteriaFragmentAnalyze); analyze.AppendLine(criteriaPointAnalyze); AnalyzeForm analyzeForm = new AnalyzeForm(); analyzeForm.SetPointGridView(pointAnalyze); analyzeForm.SetFragmentGridView(fragmentAnalyze); analyzeForm.AddAnalyze(analyze.ToString()); analyzeForm.Show(); } else { MessageBox.Show("Выберите участок карты!", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void setDataGridView() { var criteries = CriteriaObject.GetInstance().CriteriaDict; //var currentRow = 0; //var currentRow = criteriaGridView.Rows.Add(); var currentRow = 0; foreach (var criteria in criteries) { currentRow = criteriaGridView.Rows.Add(); var buildingName = criteria.Key; var row = criteriaGridView.Rows[currentRow]; row.Cells["Building"].Value = buildingName; foreach (var mapObject in criteria.Value) { var objectName = mapObject.Key; var priority = mapObject.Value; var cell = row.Cells[objectName]; cell.Value = priority; } } //criteriaGridView.Rows.RemoveAt(currentRow + 1); }
/// <summary> /// Creates and adds a new ecclesial calendar with default events, activities, openings and criteria. /// </summary> /// <param name="calendarId"></param> /// <param name="startOn"></param> /// <param name="endOn"></param> /// <returns></returns> public Models.Calendar AddEcclesialEvents(int calendarId, DateTime?startOn = null, DateTime?endOn = null) { if (this.IsPrincipalAParticipant) { throw new NotAuthorizedException(); } var userId = this.Source.Principal.GetUser()?.Value.ConvertTo <int>() ?? 0; var user = this.Context.Users.Include(u => u.Info).SingleOrDefault(u => u.Id == userId) ?? throw new NotAuthorizedException(); var calendar = this.Context.Calendars.SingleOrDefault(c => c.Id == calendarId) ?? throw new NoContentException(typeof(Calendar)); // TODO: Need generic fucntion to test permission to allow editing calendar. var ownsAccount = this.Context.Accounts.Any(a => a.Id == calendar.AccountId && a.OwnerId == userId); if (!ownsAccount) { throw new NotAuthorizedException(); } var questions = AddQuestions(calendar.AccountId); var qTitle = questions.First(q => q.Caption.Equals("Title")); // Determine date range. var start = startOn ?? DateTime.UtcNow.Date; var end = endOn ?? start.AddDays(365); var days = (end - start).Days; var events = new List <Event>(days); var member = new CriteriaObject("Member", true) { AddedById = userId }; var brother = new CriteriaObject("Brother", true) { AddedById = userId }; var sister = new CriteriaObject("Sister", true) { AddedById = userId }; var presider = new CriteriaObject(new CriteriaValue("Skill", "Preside"), (Criteria)brother, (Criteria)member) { AddedById = userId }; var pianist = new CriteriaObject(new CriteriaValue("Skill", "Pianist"), (Criteria)member) { AddedById = userId }; var exhorter = new CriteriaObject(new CriteriaValue("Skill", "Exhort"), (Criteria)brother) { AddedById = userId }; var reader = new CriteriaObject(new CriteriaValue("Skill", "Read"), (Criteria)brother, (Criteria)member) { AddedById = userId }; var server = new CriteriaObject(new CriteriaValue("Skill", "Serve"), (Criteria)brother, (Criteria)member) { AddedById = userId }; var prayer = new CriteriaObject(new CriteriaValue("Skill", "Pray"), (Criteria)brother, (Criteria)member) { AddedById = userId }; var door = new CriteriaObject(new CriteriaValue("Skill", "Doorman"), (Criteria)brother, (Criteria)member) { AddedById = userId }; var emblems = new CriteriaObject(new CriteriaValue("Skill", "Emblems"), (Criteria)member) { AddedById = userId }; var lecturer = new CriteriaObject(new CriteriaValue("Skill", "Lecturer"), (Criteria)brother) { AddedById = userId }; var study = new CriteriaObject(new CriteriaValue("Skill", "Bible Class"), (Criteria)brother) { AddedById = userId }; var clean = new CriteriaObject(new CriteriaValue("Skill", "Clean"), (Criteria)member) { AddedById = userId }; var criteria = new List <CriteriaObject>() { member, brother, sister, pianist, presider, exhorter, reader, server, prayer, door, emblems, lecturer, clean }; // Sunday Memorial var sunday = start.DayOfWeek == DayOfWeek.Sunday ? start : start.AddDays(7 - (int)start.DayOfWeek); Event firstMemorial = null; while (sunday <= end) { // Memorial var memorial = new Event(calendar, "Memorial Meeting", sunday.AddHours(11), sunday.AddHours(13)) { Description = "Sunday memorial meeting.", AddedById = userId, ParentEvent = firstMemorial, Repetition = EventRepetition.Weekly, RepetitionEndOn = end, RepetitionSize = 1 }; var aPreside = new Activity(memorial, "Presider") { AddedById = userId, Sequence = 1 }; aPreside.Openings.Add(new Opening(aPreside, "Preside", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); aPreside.Criteria.Add(new ActivityCriteria(aPreside, presider)); memorial.Activities.Add(aPreside); var aExhort = new Activity(memorial, "Exhorter") { AddedById = userId, Sequence = 2 }; aExhort.Openings.Add(new Opening(aExhort, "Exhort", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); aExhort.Criteria.Add(new ActivityCriteria(aExhort, exhorter)); memorial.Activities.Add(aExhort); var aPianist = new Activity(memorial, "Pianist") { AddedById = userId, Sequence = 3 }; aPianist.Openings.Add(new Opening(aPianist, "Pianist", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); aPianist.Criteria.Add(new ActivityCriteria(aPianist, pianist)); memorial.Activities.Add(aPianist); var aDoor = new Activity(memorial, "Door Keeper") { AddedById = userId, Sequence = 4 }; aDoor.Openings.Add(new Opening(aDoor, "Door", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); aDoor.Criteria.Add(new ActivityCriteria(aDoor, door)); memorial.Activities.Add(aDoor); var aReadings = new Activity(memorial, "Readings") { AddedById = userId, Sequence = 5 }; aReadings.Openings.Add(new Opening(aReadings, "1st Reading", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); aReadings.Openings.Add(new Opening(aReadings, "2nd Reading", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); aReadings.Criteria.Add(new ActivityCriteria(aReadings, reader)); memorial.Activities.Add(aReadings); var aPrayers = new Activity(memorial, "Prayers") { AddedById = userId, Sequence = 6 }; aPrayers.Openings.Add(new Opening(aPrayers, "Bread", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); aPrayers.Openings.Add(new Opening(aPrayers, "Wine", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); aPrayers.Openings.Add(new Opening(aPrayers, "Close", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); aPrayers.Criteria.Add(new ActivityCriteria(aPrayers, prayer)); memorial.Activities.Add(aPrayers); //var aServing = new Activity(memorial, "Serving") { AddedById = userId, Sequence = 7 }; //aServing.Openings.Add(new Opening(aServing, "Server", 4, 4, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); //aServing.Criteria.Add(new ActivityCriteria(aServing, server)); //memorial.Activities.Add(aServing); calendar.Events.Add(memorial); // Lecture var lecture = new Event(calendar, "Bible Talk", sunday.AddHours(19), sunday.AddHours(20)) { Description = "Sunday night Bible talk.", AddedById = userId }; var aPreside2 = new Activity(lecture, "Presider") { AddedById = userId, Sequence = 1 }; aPreside2.Openings.Add(new Opening(aPreside2, "Presider", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); aPreside2.Criteria.Add(new ActivityCriteria(aPreside2, presider)); lecture.Activities.Add(aPreside2); var aLecture = new Activity(lecture, "Lecture") { AddedById = userId, Sequence = 2 }; var oLecture = new Opening(aLecture, "Speak", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }; oLecture.Actions.Add(new Process(oLecture, ActionTrigger.Accept, "Add(Participant.Answers, Opening.Tags, Question.Caption=\"Title\");") { AddedById = userId }); oLecture.Actions.Add(new Process(oLecture, ActionTrigger.Unapply, "Delete(Opening.Tags, Tag.Key=\"Title\");") { AddedById = userId }); oLecture.Questions.Add(new OpeningQuestion(oLecture, qTitle)); aLecture.Openings.Add(oLecture); aLecture.Criteria.Add(new ActivityCriteria(aLecture, lecturer)); lecture.Activities.Add(aLecture); calendar.Events.Add(lecture); if (firstMemorial == null) { firstMemorial = memorial; } sunday = sunday.AddDays(7); } // Bible Class var thursday = start.DayOfWeek <= DayOfWeek.Thursday ? start.AddDays(4 - (int)start.DayOfWeek) : start.AddDays(7 + (int)start.DayOfWeek - 4); Event firstBibleClass = null; while (thursday <= end) { // Lecture var bibleClass = new Event(calendar, "Bible Class", thursday.AddHours(19), thursday.AddHours(20)) { Description = "Sunday night Bible talk.", AddedById = userId, ParentEvent = firstBibleClass, Repetition = EventRepetition.Weekly, RepetitionEndOn = end, RepetitionSize = 1 }; var aPreside = new Activity(bibleClass, "Preside") { AddedById = userId, Sequence = 1 }; aPreside.Openings.Add(new Opening(aPreside, "Presider", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); aPreside.Criteria.Add(new ActivityCriteria(aPreside, presider)); bibleClass.Activities.Add(aPreside); var aSpeak = new Activity(bibleClass, "Speak") { AddedById = userId, Sequence = 2 }; var oSpeak = new Opening(aSpeak, "Speaker", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }; oSpeak.Actions.Add(new Process(oSpeak, ActionTrigger.Accept, "Add(Participant.Answers, Opening.Tags, Question.Caption=\"Title\");") { AddedById = userId }); oSpeak.Actions.Add(new Process(oSpeak, ActionTrigger.Unapply, "Delete(Opening.Tags, Tag.Key=\"Title\");") { AddedById = userId }); oSpeak.Questions.Add(new OpeningQuestion(oSpeak, qTitle)); aSpeak.Openings.Add(oSpeak); aSpeak.Criteria.Add(new ActivityCriteria(aSpeak, study)); bibleClass.Activities.Add(aSpeak); var aPianist = new Activity(bibleClass, "Pianist") { AddedById = userId, Sequence = 3 }; aPianist.Openings.Add(new Opening(aPianist, "Pianist", 1, 1, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); aPianist.Criteria.Add(new ActivityCriteria(aPianist, pianist)); bibleClass.Activities.Add(aPianist); calendar.Events.Add(bibleClass); if (firstBibleClass == null) { firstBibleClass = bibleClass; } thursday = thursday.AddDays(7); } // Hall Cleaning var saturday = start.DayOfWeek == DayOfWeek.Saturday ? start : start.AddDays(DayOfWeek.Saturday - start.DayOfWeek); Event firstCleanHall = null; while (saturday <= end) { var cleanHall = new Event(calendar, "Hall Cleaning", saturday.AddHours(8), saturday.AddHours(10)) { Description = "Hall cleaning and maintenance.", AddedById = userId, ParentEvent = firstCleanHall, Repetition = EventRepetition.Weekly, RepetitionEndOn = end, RepetitionSize = 1 }; var cleaning = new Activity(cleanHall, "Cleaning") { AddedById = userId }; cleaning.Openings.Add(new Opening(cleaning, "Cleaner", 2, 6, OpeningType.Application, ApplicationProcess.AutoAccept, CriteriaRule.Visibility) { AddedById = userId }); cleaning.Criteria.Add(new ActivityCriteria(cleaning, clean)); cleanHall.Activities.Add(cleaning); calendar.Events.Add(cleanHall); if (firstCleanHall == null) { firstCleanHall = cleanHall; } saturday = saturday.AddDays(7); } using (var transaction = this.Context.Database.BeginTransaction()) { try { this.Context.Criteria.AddRange(criteria); this.Context.SaveChanges(); this.Context.Calendars.Update(calendar); this.Context.SaveChanges(); transaction.Commit(); } catch (DbUpdateException) { transaction.Rollback(); throw; } } return(this.Source.Mapper.Map <Models.Calendar>(calendar)); }