Exemplo n.º 1
0
        public IHttpActionResult ProvideScript(ScriptRequestViewModel request)
        {
            var script = new ScriptRepository().ProvideScript(request);
            var response = new ScriptResponse()
            {
                Text = script.Text
            };

            return Ok(script);
        }
Exemplo n.º 2
0
        public Script ProvideScript(ScriptRequestViewModel viewModel)
        {
            var agent = _context.Agents.FirstOrDefault(x => x.UserName.Equals(viewModel.AgentName, System.StringComparison.InvariantCultureIgnoreCase));
            var language = _context.Languages.FirstOrDefault(x => x.Name.Equals(viewModel.LanguagePreference, System.StringComparison.InvariantCultureIgnoreCase));
            var screen = _context.Screens.FirstOrDefault(x => x.Name.Equals(viewModel.ScreenName, System.StringComparison.InvariantCultureIgnoreCase));
            var field = _context.Fields.FirstOrDefault(x => x.Name.Equals(viewModel.FieldName, System.StringComparison.InvariantCultureIgnoreCase));
            var team = _context.Teams.FirstOrDefault(x => x.Agents.Any(ag => ag.Id.Equals(agent.Id)));
            var release = _context.Releases.Include("Scripts").FirstOrDefault(x => x.Teams.Any(te => te.Id.Equals(team.Id)));
            if (release == null)
                throw new Exception("Nothing has been released to this agent.");

            var script = release.Scripts.FirstOrDefault
                (la => la.Language.Id.Equals(language.Id) && la.Screen.Id.Equals(screen.Id)
                && la.Field.Id.Equals(field.Id));

            return script;
        }
Exemplo n.º 3
0
        ///
        public ScreenResponse ProvideScriptsForAScreen(ScriptRequestViewModel viewModel)
        {
            var agent = _context.Agents.FirstOrDefault(x => x.UserName.Equals(viewModel.AgentName, System.StringComparison.InvariantCultureIgnoreCase));
            var language = _context.Languages.FirstOrDefault(x => x.Name.Equals(viewModel.LanguagePreference, System.StringComparison.InvariantCultureIgnoreCase));
            var screen = _context.Screens.FirstOrDefault(x => x.Name.Equals(viewModel.ScreenName, System.StringComparison.InvariantCultureIgnoreCase));
            var team = _context.Teams.FirstOrDefault(x => x.Agents.Any(ag => ag.Id.Equals(agent.Id)));
            var release = _context
                .Releases
                .Include(x => x.Scripts)
                .Include(x => x.Scripts.Select(y => y.Language))
                .Include(x => x.Scripts.Select(y => y.Screen))
                .Include(x => x.Scripts.Select(y => y.Field))
                .Include(x => x.Scripts.Select(y => y.Product))
                .Include(x => x.Scripts.Select(y => y.SubProduct))
                .FirstOrDefault(x => x.Teams.Any(te => te.Id.Equals(team.Id)));
            if (release == null)
                throw new Exception("Nothing has been released to this agent.");

            var scripts = release.Scripts.Where
                (la =>
                    (language == null || la.Language.Id.Equals(language.Id))
                    && la.Screen.Id.Equals(screen.Id)
                ).ToList();

            var screenResponse = new ScreenResponse() { ScreenName = viewModel.ScreenName };
            screenResponse.Scripts = (from s in scripts
                                      select new ScriptResponse {
                                          Text = s.Text,
                                          Screen = s.Screen,
                                          Field = s.Field
                                      }).ToList();
            var flagRepository = new FlagRepository();
            foreach (var script in screenResponse.Scripts)
            {
                var flag = flagRepository.FlaggedForAfield(script.Screen.Id, script.Field.Id, agent.Id);
                if (flag!=null)
                {
                    script.FlagMessage = flag.Comment;
                    script.IsFlaggedForAgent = true;
                }
            }
            return screenResponse;
        }
Exemplo n.º 4
0
        public IHttpActionResult ProvideScriptsForAScreen(ScriptRequestViewModel request)
        {
            var scripts = new ScriptRepository().ProvideScriptsForAScreen(request);

            return Ok(scripts);
        }