'ApplicationDto' does not contain a definition for 'Applications'

218
13 июня 2017, 23:42

Привет! Задача - .NET Core API для ведения учёта заявок. Заявка - сущность с полями Id, Title, Description, Status. В последнем классе контроллера есть метод [HttpPost()] для создания новой заявки, при этом Id должен определяться автоматически, в соответствии с максимальным значением из Data класса, полученным после выборки. Скажите, пожалуйста, как именно определить переменную Applications из класса контроллера (в классе ApplicationDto)? Ошибки:

Error 1: 'ApplicationDto' does not contain a definition for 'Applications' and no extension method 'Applications' accepting a first argument of type 'ApplicationDto' could be found

Error 2: The name 'Applications' does not exist in the current context AppsAccounting

Код:

{
    public class ApplicationDto
    {
        public int Id { get; set; }
        public string Title { get; set; }
        public string Description { get; set; }
        public string Status { get; set; }
    }
}

{
    public class ApplicationForCreationDto
    {
        public string Title { get; set; }
        public string Description { get; set; }
        public string Status { get; set; }
    }
}

namespace AppsAccounting
{
    public class ApplicationsDataStore
    {
        public static ApplicationsDataStore Current { get; } = new ApplicationsDataStore();
        public List<ApplicationDto> Applications { get; set; }
        public ApplicationsDataStore()
        {
            Applications = new List<ApplicationDto>()
            {
                new ApplicationDto()
                {
                    Id = 1,
                    Title = "Application 1",
                    Description = "A New Application has been created",
                    Status = "New"
                },
                new ApplicationDto()
                {
                    Id = 2,
                    Title = "Application 2",
                    Description = "The Application is in progress",
                    Status = "In Progress"
                },
                new ApplicationDto()
                {
                    Id = 3,
                    Title = "Application 3",
                    Description = "The Application has been completed",
                    Status = "Completed"
                },
                new ApplicationDto()
                {
                    Id = 4,
                    Title = "Application 4",
                    Description = "The Application was canceled",
                    Status = "Canceled"
                },
                new ApplicationDto()
                {
                    Id = 5,
                    Title = "Application 5",
                    Description = "The Application was rejected by some reasons",
                    Status = "Rejected"
                },
                new ApplicationDto()
                {
                    Id = 6,
                    Title = "Application 6",
                    Description = "The Application was suspended by some reasons",
                    Status = "Suspended"
                }
            };
        }
    }
}   

namespace AppsAccounting.Controllers
{
    [Route("api/applications")]
    public class ApplicationsController : Controller
    {
        [HttpGet()]
        public IActionResult GetApplications()
        {
            return Ok(ApplicationsDataStore.Current.Applications);
        }
        [HttpGet("{id}", Name = "GetApplication")]
        public IActionResult GetApplication(int id)
        {
            var applicationToReturn = ApplicationsDataStore.Current.Applications.FirstOrDefault(a => a.Id == id);
            if (applicationToReturn == null)
            {
                return NotFound();
            }
            return Ok(applicationToReturn);
        }
        [HttpPost()]
        public IActionResult CreateApplication([FromBody] ApplicationForCreationDto application)
        {
            if (application == null)
            {
                return BadRequest();
            }
            var maxApplicationId = ApplicationsDataStore.Current.Applications.SelectMany(
                a => a.Applications).Max(a => a.Id);
            var finalApplication = new ApplicationDto()
            {
                Id = ++maxApplicationId,
                Title = application.Title,
                Description = application.Description,
                Status = application.Status
            };
            Applications.Add(finalApplication);
            return CreatedAtRoute("GetApplication", new
            { id = finalApplication.Id }, finalApplication);
        }
    }
}
READ ALSO
oodb Perst операции CRUD [требует правки]

oodb Perst операции CRUD [требует правки]

Здесь есть кто-нибудь, кто работал с Perst? Помогите пожалуйста) Не понимаю как она устроена, не могу даже вывести содержимое базы на экранПишу...

220
Сохранение файла RichTextBox

Сохранение файла RichTextBox

Сейчас если написать текст и нажать на кнопку сохранения появится OpenFileDialogЕсли в этом же документе что-то дописать и опять нажать на кнопку...

250
Применение enum на реальных проектах

Применение enum на реальных проектах

Применяют ли на реальных проектах перечисления enum? Если да, то в каких use-case? Я читал, что с данными типами в будущем могут появиться проблемы,...

173
Ограничить выбор чекбоксов

Ограничить выбор чекбоксов

ЗдравствуйтеИмеется множества чекбоксов

245