public Task <PostingViewModel> GetEmptyPosting(long categoryId) { var postingViewModel = new PostingViewModel(); postingViewModel.CategoryId = categoryId; postingViewModel.UserId = _currentUser.GetUserId <long>(); postingViewModel.Title = string.Empty; postingViewModel.Description = string.Empty; postingViewModel.CreationDate = DateTime.Now; postingViewModel.ExpirationDate = DateTime.Now; postingViewModel.Type = (int)EPostingTypes.Buy; postingViewModel.Id = string.Empty; var postingCategory = _netBazaarDatabase.Categories.Include("CategoryFields") .First(category => category.Id == postingViewModel.CategoryId); foreach (var categoryField in postingCategory.CategoryFields) { var postingFieldViewModel = new PostingFieldViewModel(); postingFieldViewModel.Type = categoryField.Type; postingFieldViewModel.BooleanValue = false; postingFieldViewModel.DecimalValue = 0; postingFieldViewModel.IntegerValue = 0; postingFieldViewModel.TextValue = string.Empty; postingFieldViewModel.CategoryFieldId = categoryField.Id; postingFieldViewModel.CategoryFieldName = categoryField .Name; postingViewModel.Fields.Add(postingFieldViewModel); } return(Task.FromResult(postingViewModel)); }
public Task <PostingViewModel> GetPosting(string postingId) { var query = Builders <BsonDocument> .Filter.Eq("id", ObjectId.Parse(postingId)); var postingsCollection = _netBazaarMongoDbDatabase.GetCollection <BsonDocument>("Postings"); var postingDocument = postingsCollection.Find(query).FirstOrDefault(); var postingViewModel = new PostingViewModel(); postingViewModel.CategoryId = postingDocument[nameof(postingViewModel.CategoryId)].AsInt64; postingViewModel.UserId = postingDocument[nameof(postingViewModel.UserId)].AsInt64; postingViewModel.Title = postingDocument[nameof(postingViewModel.Title)].AsString; postingViewModel.Description = postingDocument[nameof(postingViewModel.Description)].AsString; postingViewModel.CreationDate = postingDocument[nameof(postingViewModel.CreationDate)].ToLocalTime(); postingViewModel.ExpirationDate = postingDocument[nameof(postingViewModel.ExpirationDate)].ToLocalTime(); postingViewModel.Type = postingDocument[nameof(postingViewModel.Type)].AsInt32; postingViewModel.Id = postingDocument["_id"].AsObjectId.ToString(); var fieldDocuments = postingDocument["Fields"].AsBsonArray; var postingCategory = _netBazaarDatabase.Categories.Include("CategoryFields") .First(category => category.Id == postingViewModel.CategoryId); foreach (var fieldDocument in fieldDocuments) { var postingFieldViewModel = new PostingFieldViewModel(); var categoryField = postingCategory.CategoryFields.First(field => field.Id == postingFieldViewModel.CategoryFieldId); postingFieldViewModel.Type = categoryField.Type; postingFieldViewModel.BooleanValue = fieldDocument[nameof(postingFieldViewModel.BooleanValue)].AsNullableBoolean; postingFieldViewModel.DecimalValue = fieldDocument[nameof(postingFieldViewModel.DecimalValue)].AsNullableDouble; postingFieldViewModel.IntegerValue = fieldDocument[nameof(postingFieldViewModel.IntegerValue)].AsNullableInt32; postingFieldViewModel.TextValue = fieldDocument[nameof(postingFieldViewModel.TextValue)].AsString; postingFieldViewModel.CategoryFieldId = fieldDocument[nameof(postingFieldViewModel.CategoryFieldId)].AsInt32; postingFieldViewModel.CategoryFieldName = categoryField.Name; postingViewModel.Fields.Add(postingFieldViewModel); } return(Task.FromResult(postingViewModel)); }