Example #1
0
        private async Task AddDepartments(long employerId)
        {
            var department = new Department
            {
                OrganizationId = employerId,
                Name           = "Отдел",
                Description    = "Отдел компании"
            };

            _context.Departments.Add(department);
            await _context.SaveChangesAsync();

            var @event = new DepartmentsChanged
            {
                Created = new[] { Mapper.Map <DtoDepartment>(department) }
            };

            _eventBus.Publish(@event);
        }
Example #2
0
        public async Task <IActionResult> Delete([FromRoute] long id)
        {
            await _context.Departments
            .Where(x => x.Id == id)
            .DeleteFromQueryAsync()
            .ConfigureAwait(false);

            await _context.SaveChangesAsync()
            .ConfigureAwait(false);

            var @event = new DepartmentsChanged
            {
                Deleted = new List <long> {
                    id
                }
            };

            _eventBus.Publish(@event);

            return(Ok());
        }
Example #3
0
        public async Task <IActionResult> Post([FromBody] DtoDepartment dto)
        {
            var entity = Mapper.Map <Department>(dto);

            _context.Departments.Add(entity);

            await _context
            .SaveChangesAsync()
            .ConfigureAwait(false);

            dto.Id = entity.Id;
            var @event = new DepartmentsChanged
            {
                Created = new List <DtoDepartment> {
                    dto
                }
            };

            _eventBus.Publish(@event);

            return(Ok(entity.Id));
        }
Example #4
0
        public async Task <IActionResult> Update([FromBody] DtoDepartment dto, [FromRoute] long id)
        {
            var template = Mapper.Map <Department>(dto);

            template.Id = id;

            await _context.Departments
            .Where(x => x.Id == id)
            .UpdateFromQueryAsync(_ => template)
            .ConfigureAwait(false);

            dto.Id = id;
            var @event = new DepartmentsChanged
            {
                Updated = new List <DtoDepartment> {
                    dto
                }
            };

            _eventBus.Publish(@event);

            return(Ok(id));
        }