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); }
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); }
public async Task <UpdateFilmTheatreResponse> ExportToXmlFileAsync(ExportToFileRequest request) { await SaveStructuredXML(request); return(GetUpdateFilmThatreResponse(_successExportToXml, SubmitStatus.Success)); }
public async Task <UpdateFilmTheatreResponse> ExportToXmlFile([FromBody] ExportToFileRequest request) { return(await _screeningManagementService.ExportToXmlFileAsync(request)); }