public async Task <ProductEntity> AddProductAsync(ProductEntity productEntity)
        {
            var storeEntity            = productEntity.ToEntity();
            var productStoreCollection = _db.GetCollection <MongoEntity>(_collection);

            try
            {
                await productStoreCollection.InsertOneAsync(storeEntity);
            }
            catch (MongoWriteException mongoWriteException)
            {
                if (mongoWriteException.WriteError.Category == ServerErrorCategory.DuplicateKey)
                {
                    throw new BaseException(int.Parse(ErrorCode.DuplicateProduct()), Error.DuplicateProduct(), null, HttpStatusCode.GatewayTimeout);
                }
            }
            var mongoEntity = (await productStoreCollection.Find(_ => _.Id == productEntity.Id).FirstOrDefaultAsync()).ToModel();

            return(mongoEntity);
        }