Ejemplo n.º 1
0
        public IActionResult Post([FromBody] PopulateTemplate populateTemplate)
        {
            var currentUser = CurrentUser();

            try
            {
                // Attempt to find an existing template to replace.
                var existingTemplate = _context.PopulateTemplates
                                       .Where(t => t.OrganizationId == currentUser.OrganizationId)
                                       .Where(t => t.RateType == populateTemplate.RateType)
                                       .Where(t => t.Name == populateTemplate.Name)
                                       .FirstOrDefault();

                if (existingTemplate != null)
                {
                    // Update the existing template.
                    existingTemplate.Template = populateTemplate.Template;

                    // Validate the model.
                    ModelState.ClearValidationState(nameof(existingTemplate));
                    if (!TryValidateModel(existingTemplate, nameof(existingTemplate)))
                    {
                        return(BadRequest());
                    }

                    _context.SaveChanges();

                    return(Ok(existingTemplate));
                }
                else
                {
                    // Set defaults for the new template.
                    populateTemplate.CreatedAt      = DateTime.UtcNow;
                    populateTemplate.OrganizationId = currentUser.OrganizationId;

                    // Validate the model.
                    ModelState.ClearValidationState(nameof(populateTemplate));
                    if (!TryValidateModel(populateTemplate, nameof(populateTemplate)))
                    {
                        return(BadRequest());
                    }

                    _context.PopulateTemplates.Add(populateTemplate);

                    _context.SaveChanges();

                    return(Ok(populateTemplate));
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
        }
Ejemplo n.º 2
0
        public async Task <PopulateTemplate> SavePopulateTemplateAsync(PopulateTemplate populateTemplate)
        {
            using (var request = new HttpRequestMessage(HttpMethod.Post, "api/PopulateTemplates"))
            {
                var payload = new Dictionary <string, object>()
                {
                    { "Name", populateTemplate.Name },
                    { "Template", populateTemplate.Template },
                    { "RateType", populateTemplate.RateType }
                };

                var json = JsonSerializer.Serialize(payload, options);

                using (var stringContent = new StringContent(json, Encoding.UTF8, "application/json"))
                {
                    request.Content = stringContent;

                    using (var response = await _apiService
                                          .GetHttpClient()
                                          .SendAsync(request, HttpCompletionOption.ResponseHeadersRead)
                                          .ConfigureAwait(false))
                    {
                        if (response.IsSuccessStatusCode)
                        {
                            using var responseContent = await response.Content.ReadAsStreamAsync();

                            if (response.StatusCode == HttpStatusCode.NoContent)
                            {
                                return(null);
                            }
                            else
                            {
                                var deserialized = await JsonSerializer.DeserializeAsync <PopulateTemplate>(responseContent, options);

                                return(deserialized);
                            }
                        }
                        else
                        {
                            return(null);
                        }
                    }
                }
            }
        }