public async Task <Item> GetItemAsync(GetItemCommand command) { var device = _config.Sitecore.Device; var database = _config.Sitecore.Database; var cdn = _config.Sitecore.Cdn; var query = new StringBuilder(); query.Append(_config.ServerUrl); query.Append("/-/lightcore/item/"); query.Append(command.PathOrId); query.AppendFormat("?sc_database={0}", database); query.AppendFormat("&sc_lang={0}", command.Language.Name); query.AppendFormat("&sc_device={0}", device); query.AppendFormat("&cdn={0}", cdn); if (command.ItemFields.Any()) { query.AppendFormat("&itemfields={0}", string.Join(",", command.ItemFields)); } if (command.ChildFields.Any()) { query.AppendFormat("&childfields={0}", string.Join(",", command.ChildFields)); } return(ItemFactory.Create(await GetAsync(query.ToString())).FirstOrDefault()); }
/// <summary> /// Создание и вызов нужной команды /// </summary> /// <param name="command">название команды</param> /// <returns>Команда</returns> private ICommand CallCommand(string command) { ICommand newCommand = null; switch (command) { case "create": newCommand = new CreateCommand(productCatalog, currentArgs); break; case "list": newCommand = new ListCommand(productCatalog, currentArgs); break; case "delete": newCommand = new DeleteCommand(productCatalog, currentArgs); break; case "add-count": newCommand = new AddCountCommand(productCatalog, currentArgs); break; case "sub-count": newCommand = new SubstractCountCommand(productCatalog, currentArgs); break; case "get-item": newCommand = new GetItemCommand(productCatalog, currentArgs); break; } return(newCommand); }
public async Task <Item> GetItemAsync(GetItemCommand command) { var file = $"e:\\temp\\Lightcore\\web\\{command.Language.Name}\\default\\{command.PathOrId}\\item.json"; if (!File.Exists(file)) { return(null); } using (var stream = File.OpenRead(file)) { using (var memory = new MemoryStream()) { await stream.CopyToAsync(memory); memory.Position = 0; using (var streamReader = new StreamReader(memory)) { using (JsonReader jsonReader = new JsonTextReader(streamReader)) { var apiResponse = _serializer.Deserialize <ServerResponseModel>(jsonReader); return(ItemFactory.Create(apiResponse).FirstOrDefault()); } } } } }
public async Task<Item> GetItemAsync(GetItemCommand command) { var device = _config.Sitecore.Device; var database = _config.Sitecore.Database; var cdn = _config.Sitecore.Cdn; var query = new StringBuilder(); query.Append(_config.ServerUrl); query.Append("/-/lightcore/item/"); query.Append(command.PathOrId); query.AppendFormat("?sc_database={0}", database); query.AppendFormat("&sc_lang={0}", command.Language.Name); query.AppendFormat("&sc_device={0}", device); query.AppendFormat("&cdn={0}", cdn); if (command.ItemFields.Any()) { query.AppendFormat("&itemfields={0}", string.Join(",", command.ItemFields)); } if (command.ChildFields.Any()) { query.AppendFormat("&childfields={0}", string.Join(",", command.ChildFields)); } return ItemFactory.Create(await GetAsync(query.ToString())).FirstOrDefault(); }
public async Task <Item> GetItemAsync(GetItemCommand command) { var database = _server.Connection.GetDatabase(); var snapshotVersion = await GetSnapshotVersion(database); var id = await GetId(snapshotVersion, command.PathOrId, database); var key = (snapshotVersion + ":version:" + id + ":" + command.Language.Name).ToLowerInvariant(); var value = await database.StringGetAsync(key); if (value.IsNullOrEmpty) { if (!command.Language.Name.Equals(Language.Default.Name)) { key = (snapshotVersion + ":version:" + id + ":" + Language.Default.Name).ToLowerInvariant(); value = await database.StringGetAsync(key); } if (value.IsNullOrEmpty) { return(null); } } return(ItemSerializer.Deserialize(value.ToString())); }
public async Task <List <EwsTask> > DownloadFolderContentAsync(IEnumerable <EwsItemIdentifier> identifiers, EwsItemType ewsItemType) { if (!identifiers.Any()) { return(new List <EwsTask>()); } var parameter = new GetItemParameter(ewsItemType); foreach (var identifier in identifiers) { parameter.ItemIdentifiers.Add(identifier); } var command = new GetItemCommand(parameter, this.settings); var result = await command.Execute(); // set item type foreach (var ewsTask in result.Data.Tasks) { ewsTask.Type = ewsItemType; } return(result.Data.Tasks); }
public void ShouldGetItemFromDataStorage(GetItemCommand sut, Item item) { // arrange sut.DataStorage.GetSitecoreItem(item.ID, item.Language, item.Version).Returns(item); sut.Initialize(item.ID, item.Language, item.Version); // act var result = ReflectionUtil.CallMethod(sut, "DoExecute"); // assert result.Should().Be(item); }