示例#1
0
        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));
        }
示例#2
0
        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));
        }