public async Task <IActionResult> Outgoing() { var userId = await _accountManager.GetUserIdByNameAsync(User.Identity.Name); var outgoingOrders = await _orderManager.GetOutgoingOrdersAsync(userId); var orderViewModels = new List <OrderViewModel>(); if (outgoingOrders.Any()) { foreach (var order in outgoingOrders) { var tags = await _tagManager.GetOrderTagsAsync(order.Id); var tagViewModels = new List <TagViewModel>(); if (tags.Any()) { foreach (var tag in tags) { tagViewModels.Add(new TagViewModel() { Id = tag.Id, Name = tag.Name }); } } var vendor = order.VendorId is null ? null : (await _profileManager.GetProfileAsync(order.VendorId)); orderViewModels.Add(new OrderViewModel() { Id = order.Id, Price = order.Price, Description = order.Description, Title = order.Title, Start = order.Start, End = order.End, State = order.State, ClientId = order.ClientId, VendorId = order.VendorId, VendorName = vendor is null ? null : vendor.Name, VendorUserName = order.VendorId is null ? null : await _accountManager.GetUserNameByIdAsync(order.VendorId), VendorAvatar = vendor is null ? null : vendor.Avatar, Comment = order.Comment == null ? null : new CommentViewModel() { OrderId = order.Id, Created = order.Comment.Created, Rating = order.Comment.Rating, Text = order.Comment.Text }, Tags = tagViewModels });
public async Task <IActionResult> Order(string searchString, IList <int> tagIds) { var userId = await _accountManager.GetUserIdByNameAsync(User.Identity.Name); var orderViewModels = new List <OrderViewModel>(); var orders = (await _orderManager.GetOrdersByTagsAsync(tagIds)).Where(order => order.ClientId != userId).ToList(); if (!String.IsNullOrEmpty(searchString)) { orders = orders.Where(order => order.Title.Contains(searchString)).ToList(); } if (orders.Any()) { foreach (var order in orders) { var tags = await _tagManager.GetOrderTagsAsync(order.Id); var tagViewModels = new List <TagViewModel>(); if (tags.Any()) { foreach (var tag in tags) { tagViewModels.Add(new TagViewModel { Id = tag.Id, Name = tag.Name }); } } var client = await _profileManager.GetProfileAsync(order.ClientId); orderViewModels.Add(new OrderViewModel() { Id = order.Id, ClientUserName = await _accountManager.GetUserNameByIdAsync(order.ClientId), ClientName = client.Name, ClientAvatar = client.Avatar, Description = order.Description, End = order.End, Price = order.Price, Start = order.Start, State = order.State, Title = order.Title, Tags = tagViewModels, ClientId = order.ClientId }); } } var allTagsViewModels = new List <TagViewModel>(); var allTags = await _tagManager.GetAllTagsAsync(); if (allTags.Any()) { foreach (var tag in allTags) { allTagsViewModels.Add(new TagViewModel() { Id = tag.Id, Name = tag.Name }); } } return(View(( allTagsViewModels, orderViewModels))); }