internal DomainServices.Sessions.SessionReport ConvertSessionReport(SessionReportConfiguration sessionReportConfiguration) { var response = new DomainServices.Sessions.SessionReport(); response.Summary = sessionReportConfiguration.Summary.Answer; response.BehaviorsSection = new BehaviorsReportSection { Behaviors = sessionReportConfiguration.Behaviors.Options .Where(o => o.Answer) .Select(o => new Behavior { Name = o.Question, Description = o.Notes }) .ToList() }; response.InterventionsSection = new InterventionsReportSection { Interventions = sessionReportConfiguration.Interventions.Options .Where(o => !String.IsNullOrEmpty(o.Answer)) .Select(o => new Intervention { Name = o.Name, Response = o.Answer, Description = o.Notes }) .ToList() }; response.ReinforcersSection = new ReinforcersReportSection { Reinforcers = sessionReportConfiguration.Reinforcers.Options .Where(o => o.Answer) .Select(o => new Reinforcer { Name = o.Question, Description = o.Notes }) .ToList() }; response.GoalsSection = new GoalsReportSection { Goals = new List <Goal> { new Goal { Name = sessionReportConfiguration.Goals.Answer, Progress = sessionReportConfiguration.Goals.Progress } } .ToList() }; response.BarriersSection = new BarriersReportSection { Barriers = sessionReportConfiguration.Barriers.Options .Where(o => o.Answer) .Select(o => new Barrier { Name = o.Question, Description = o.Notes }) .ToList() }; return(response); }
SessionReportConfiguration ConvertSessionReportConfiguration(DomainServices.Sessions.SessionReportConfiguration aabcSessionReportConfiguration) { var atrackSessionReportConfiguration = new SessionReportConfiguration(); var summary = aabcSessionReportConfiguration.Fields.FirstOrDefault(f => f.Name == "Summary") as DomainServices.Sessions.TextFieldConfiguration; if (summary != null) { atrackSessionReportConfiguration.Summary = new TextFieldConfiguration { Name = summary.Name, ControlType = summary.ControlType }; } var behavior = aabcSessionReportConfiguration.Fields.FirstOrDefault(f => f.Name == "Behaviors") as DomainServices.Sessions.MultiSelectFieldConfiguration <MultiSelectOption>; if (behavior != null) { atrackSessionReportConfiguration.Behaviors = new global::ATrack.Integrators.ProviderApp.Contracts.Messages.Sessions.MultiSelectFieldConfiguration <QuestionAnswer <string, bool> > { Name = behavior.Name, ControlType = behavior.ControlType, Options = behavior.Options.Select(o => new QuestionAnswer <string, bool> { Question = o.Name }) .ToList() }; } var interventions = aabcSessionReportConfiguration.Fields.FirstOrDefault(f => f.Name == "Interventions") as DomainServices.Sessions.MultiSelectFieldConfiguration <DomainServices.Sessions.MultiSelectOptionWithResponses>; if (interventions != null) { atrackSessionReportConfiguration.Interventions = new global::ATrack.Integrators.ProviderApp.Contracts.Messages.Sessions.MultiSelectFieldConfiguration <MultiSelectWithResponses>() { Name = interventions.Name, ControlType = interventions.ControlType, Options = interventions.Options.Select(o => new MultiSelectWithResponses { Name = o.Name, Responses = o.Responses.Select(r => r.Name).ToList() }).ToList() }; } var reinforcers = aabcSessionReportConfiguration.Fields.FirstOrDefault(f => f.Name == "Reinforcers") as DomainServices.Sessions.MultiSelectFieldConfiguration <MultiSelectOption>; if (reinforcers != null) { atrackSessionReportConfiguration.Reinforcers = new global::ATrack.Integrators.ProviderApp.Contracts.Messages.Sessions.MultiSelectFieldConfiguration <QuestionAnswer <string, bool> > { Name = reinforcers.Name, ControlType = reinforcers.ControlType, Options = reinforcers.Options.Select(o => new QuestionAnswer <string, bool> { Question = o.Name }) .ToList() }; } var goals = aabcSessionReportConfiguration.Fields.FirstOrDefault(f => f.Name == "Goals") as DomainServices.Sessions.CustomFieldConfiguration; if (goals != null) { atrackSessionReportConfiguration.Goals = new CustomFieldConfiguration { Name = goals.Name, ControlType = goals.ControlType, }; } var barriers = aabcSessionReportConfiguration.Fields.FirstOrDefault(f => f.Name == "Barriers") as DomainServices.Sessions.MultiSelectFieldConfiguration <MultiSelectOption>; if (barriers != null) { atrackSessionReportConfiguration.Barriers = new global::ATrack.Integrators.ProviderApp.Contracts.Messages.Sessions.MultiSelectFieldConfiguration <QuestionAnswer <string, bool> > { Name = barriers.Name, ControlType = barriers.ControlType, Options = barriers.Options.Select(o => new QuestionAnswer <string, bool> { Question = o.Name }) .ToList() }; } return(atrackSessionReportConfiguration); }