private IWorkoutViewModel CreateWorkOutFromWorkOutRow(WorkOutRow workOutRow, IWorkoutDefinitionViewModel workOutDefinition)
        {
            var workout = App.Container.Resolve <IWorkoutViewModel>();

            workout.WorkOutId           = workOutRow.WorkOuId;
            workout.SessionId           = workOutRow.SessionId;
            workout.WorkOutDefinitionId = workOutRow.WorkOutDefinitionId;
            workout.WorkOutName         = workOutRow.WorkOutName;
            workout.WorkOutType         = (WorkOutAssignment.WorkOutTypes)workOutRow.WorkOutType;
            workout.WorkOutComplete     = workOutRow.WorkOutComplete;

            foreach (var set in _setRepository.GetSets(workOutRow.WorkOuId))
            {
                workout.WorkOutSets.Add(set);
            }

            return(workout);
        }
Beispiel #2
0
        private XDocument CreateListSets(DateTime date, ArgumentContainer arguments, IResumptionToken resumptionToken = null)
        {
            OaiVerb verb = OaiVerb.ListSets;

            OaiArgument allowedArguments = OaiArgument.ResumptionToken;

            if (!OaiErrors.ValidateArguments(arguments, allowedArguments, out XElement errorElement))
            {
                return(CreateErrorDocument(date, verb, arguments, errorElement));
            }

            // Set
            if (!_configuration.SupportSets)
            {
                return(CreateErrorDocument(date, verb, arguments, OaiErrors.NoSetHierarchy));
            }

            // Decode ResumptionToken
            if (resumptionToken == null && !string.IsNullOrWhiteSpace(arguments.ResumptionToken))
            {
                if (!OaiErrors.ValidateArguments(arguments, OaiArgument.ResumptionToken))
                {
                    return(CreateErrorDocument(date, verb, arguments, OaiErrors.BadArgumentExclusiveResumptionToken));
                }

                IResumptionToken decodedResumptionToken = _resumptionTokenConverter.Decode(arguments.ResumptionToken);
                if (decodedResumptionToken.ExpirationDate >= DateTime.UtcNow)
                {
                    return(CreateErrorDocument(date, verb, arguments, OaiErrors.BadResumptionToken));
                }

                ArgumentContainer resumptionTokenArguments = new ArgumentContainer(
                    verb.ToString(), decodedResumptionToken.MetadataPrefix, arguments.ResumptionToken, null,
                    _dateConverter.Encode(_configuration.Granularity, decodedResumptionToken.From),
                    _dateConverter.Encode(_configuration.Granularity, decodedResumptionToken.Until),
                    decodedResumptionToken.Set);

                return(CreateListSets(date, resumptionTokenArguments, decodedResumptionToken));
            }

            var setContainer = _setRepository.GetSets(arguments, resumptionToken);

            IList <XElement> root = new List <XElement>();

            root.Add(CreateRequest(verb, arguments));

            XElement content = new XElement(verb.ToString());

            root.Add(content);

            if (setContainer != null)
            {
                foreach (var set in setContainer.Sets)
                {
                    XElement setElement = new XElement("set");
                    content.Add(setElement);
                    TryAddXElement(setElement, "setSpec", set.Spec);
                    TryAddXElement(setElement, "setName", set.Name);
                    TryAddXElement(setElement, "setDescription", set.Description);
                    foreach (var additionalDescription in set.AdditionalDescriptions)
                    {
                        setElement.Add(new XElement("setDescription", additionalDescription));
                    }
                }

                if (setContainer.ResumptionToken != null)
                {
                    content.Add(_resumptionTokenConverter.ToXElement(setContainer.ResumptionToken));
                }
            }

            return(CreateXml(date, root.ToArray()));
        }