//[HttpPost] //public void Notification() //{ // //_connectorService.ProcessNotification(); //} public ActionResult About() { string errorMsg = null; var fileSystem = new ShopConnectorFileSystem("Export"); var path = fileSystem.GetFullFilePath(string.Concat("about-", Guid.NewGuid().ToString(), ".xml")); var publicKey = Request.Headers[ShopConnectorCore.Header.PublicKey]; var controllingData = ConnectionCache.ControllingData(); var connection = controllingData.Connections.FirstOrDefault(x => x.PublicKey == publicKey && x.IsForExport); using (var fileStream = new FileStream(path, FileMode.Create, FileAccess.Write)) using (var writer = XmlWriter.Create(fileStream, ShopConnectorService.DefaultSettings)) { try { var model = _connectorService.CreateAboutModel(connection); writer.WriteStartElement("Content"); writer.WriteElementString("AppVersion", model.AppVersion); writer.WriteElementString("UtcTime", model.UtcTime.ToString("o")); writer.WriteElementString("ConnectorVersion", model.ConnectorVersion); writer.WriteElementString("StoreName", model.StoreName); writer.WriteElementString("StoreUrl", model.StoreUrl); writer.WriteElementString("StoreCount", model.StoreCount.ToString()); writer.WriteElementString("CompanyName", model.CompanyName); writer.WriteElementString("StoreLogoUrl", model.StoreLogoUrl); writer.WriteElementString("UpdatedProductsCount", model.UpdatedProductsCount.NaIfEmpty()); writer.WriteStartElement("Manufacturers"); foreach (var manu in model.AvailableManufacturers) { writer.WriteStartElement("Manufacturer"); writer.WriteElementString("Name", manu.Text); writer.WriteElementString("Id", manu.Value); writer.WriteEndElement(); // Manufacturer } writer.WriteEndElement(); // Manufacturers writer.WriteStartElement("Categories"); foreach (var category in model.AvailableCategories) { writer.WriteStartElement("Category"); writer.WriteElementString("Name", category.Text); writer.WriteElementString("Id", category.Value); writer.WriteEndElement(); // Category } writer.WriteEndElement(); // Categories writer.WriteEndElement(); // Content } catch (Exception ex) { errorMsg = ex.Message; } } if (errorMsg.HasValue()) { Response.AddHeader("Sm-ShopConnector-ErrorMessageShort", errorMsg); } if (connection != null) { Response.AddHeader("Sm-ShopConnector-RequestCount", connection.RequestCount.ToString()); Response.AddHeader("Sm-ShopConnector-LastRequest", connection.LastRequestUtc.HasValue ? connection.LastRequestUtc.Value.ToString("o") : ""); Response.AddHeader("Sm-ShopConnector-LastProductCall", connection.LastProductCallUtc.HasValue ? connection.LastProductCallUtc.Value.ToString("o") : ""); } ShopConnectorFileSystem.CleanupDirectories(); Response.BufferOutput = false; // !! var finalStream = new FileStream(path, FileMode.Open); return(new FileStreamResult(finalStream, MediaTypeNames.Text.Xml)); }