コード例 #1
0
        private async Task SaveStructuredXML(ExportToFileRequest request)
        {
            var films = await _filmRepository.GetFilmsAsync();

            var theatres = await _theatreRepository.GetTheatresAsync();

            var filmIndentifiers    = new List <long>();
            var theatreIndentifiers = new List <long>();

            if (request.UpdateFilmTheatreRequest.FilmId != null)
            {
                filmIndentifiers.Add(request.UpdateFilmTheatreRequest.FilmId.Value);
            }
            else
            {
                filmIndentifiers.AddRange(films.Select(p => p.Id));
            }

            if (request.UpdateFilmTheatreRequest.TheatreId != null)
            {
                theatreIndentifiers.Add(request.UpdateFilmTheatreRequest.TheatreId.Value);
            }
            else
            {
                theatreIndentifiers.AddRange(theatres.Select(p => p.Id));
            }

            SaveToXML(filmIndentifiers, theatreIndentifiers, request);
        }
コード例 #2
0
        private void SaveToXML(
            IEnumerable <long> filmIndentifiers,
            IEnumerable <long> theatreIndentifiers,
            ExportToFileRequest request)
        {
            var doc = new XmlDocument();

            doc.LoadXml("<container></container>");

            foreach (var film in filmIndentifiers)
            {
                foreach (var theatre in theatreIndentifiers)
                {
                    var updateRequestItem = doc.CreateElement("updateRequest");
                    doc.DocumentElement.AppendChild(updateRequestItem);

                    foreach (var property in request.UpdateFilmTheatreRequest.GetType().GetProperties())
                    {
                        var propertyName = property.Name.Substring(0, 1).ToLower() + property.Name.Substring(1);
                        var prop         = doc.CreateElement(propertyName);

                        if (propertyName == "filmId")
                        {
                            prop.InnerText = film.ToString();
                        }
                        else if (propertyName == "theatreId")
                        {
                            prop.InnerText = theatre.ToString();
                        }
                        else
                        {
                            prop.InnerText = property.GetValue(request.UpdateFilmTheatreRequest)?.ToString() ?? _unknownDataMessage;
                        }

                        updateRequestItem.AppendChild(prop);
                    }
                }
            }

            doc.PreserveWhitespace = true;
            doc.Save(request.Path);
        }
コード例 #3
0
        public async Task <UpdateFilmTheatreResponse> ExportToXmlFileAsync(ExportToFileRequest request)
        {
            await SaveStructuredXML(request);

            return(GetUpdateFilmThatreResponse(_successExportToXml, SubmitStatus.Success));
        }
コード例 #4
0
 public async Task <UpdateFilmTheatreResponse> ExportToXmlFile([FromBody] ExportToFileRequest request)
 {
     return(await _screeningManagementService.ExportToXmlFileAsync(request));
 }