Ejemplo n.º 1
0
        public async Task Given_AString_WhenIsUploadInStorage_Then_Should_BeThere()
        {
            //Assert
            JObject testJObject = new JObject
            {
                { "Cpu", "Intel" },
                { "Memory", 32 },
                {
                    "Drives", new JArray
                    {
                        "DVD",
                        "SSD"
                    }
                }
            };

            using (var memoryStream = new MemoryStream())
            {
                using (var s = Convertors.GenerateStreamFromString(testJObject))
                {
                    await s.CopyToAsync(memoryStream);

                    await _sut.UploadAsync("nameTest", memoryStream);
                }
            }
            Assert.AreEqual(await _sut.ExistBlob("nameTest"), true);
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> CreateForm([FromBody] FormModel formModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new ApiResponse {
                    Status = false, ModelState = ModelState
                }));
            }

            var options = new DbContextOptionsBuilder <ContentDbContext>()
                          .UseSqlServer(new SqlConnection(_configuration.GetConnectionString("ContentDbConnection")))
                          .Options;

            using (var context = new ContentDbContext(options))
            {
                using (var transaction = context.Database.BeginTransaction())
                {
                    try
                    {
                        var generate            = new GenerateCandidate();
                        var candidateIncomplete = new Candidate
                        {
                            Email     = formModel.Email,
                            Approved  = formModel.Approved,
                            Completed = formModel.Completed
                        };

                        var candidate       = generate.Generate(formModel.BlobObject, candidateIncomplete);
                        var actualCandidate =
                            await context.Candidates.SingleOrDefaultAsync(x => x.Email.Equals(formModel.Email));

                        if (actualCandidate != null)
                        {
                            context.Candidates.Remove(actualCandidate);
                        }
                        await context.SaveChangesAsync();

                        context.Candidates.Add(candidate);
                        await context.SaveChangesAsync();

                        //Now Delete existing blob
                        if (await _storage.ExistBlob(formModel.Email))
                        {
                            await _storage.DeleteAsync(formModel.Email);
                        }

                        using (var memoryStream = new MemoryStream())
                        {
                            using (var s = Convertors.GenerateStreamFromString(formModel.BlobObject))
                            {
                                await s.CopyToAsync(memoryStream);

                                await _storage.UploadAsync(formModel.Email, memoryStream);
                            }
                        }
                        transaction.Commit();
                        return(CreatedAtRoute("GetFormsRoute", new { email = formModel.Email },
                                              new ApiResponse {
                            Status = true
                        }));
                    }
                    catch (Exception exp)
                    {
                        _logger.LogError(exp.Message);
                        return(BadRequest(new ApiResponse {
                            Status = false
                        }));
                    }
                }
            }
        }