Beispiel #1
0
        public async Task <ActionResult> Put([FromQuery] Guid id, [FromBody] EmployeeUpdateDto value)
        {
            if (id == Guid.Empty)
            {
                return(BadRequest($"Invalid {nameof(Employee)} Id"));
            }
            var obj = await _ctx.Employees
                      .Include(t => t.EmployeeCertifications)
                      .Include(t => t.EmployeeCompetencies)
                      .Include(t => t.EmployeeHealthItems)
                      .FirstOrDefaultAsync(t => t.Id == id);

            if (null == obj)
            {
                return(NotFound($"{nameof(Employee)} Not Found"));
            }
            obj.UpdateFromDto(value);
            ContextCollectionSyncer.SyncCollections(_ctx, value.EmployeeCompetencies, obj.EmployeeCompetencies);
            ContextCollectionSyncer.SyncCollections(_ctx, value.EmployeeCertifications, obj.EmployeeCertifications);
            ContextCollectionSyncer.SyncCollections(_ctx, value.EmployeeHealthItems, obj.EmployeeHealthItems);
            if (0 < await _ctx.SaveChangesAsync())
            {
                await _updatedPublisher.PublishAsync(obj);
            }
            return(Ok(obj));
        }
Beispiel #2
0
        public async Task <ActionResult> Post([FromBody] EmployeeInsertDto value)
        {
            var obj = Employee.FromInsertDto(value);

            ContextCollectionSyncer.SyncCollections(_ctx, value.EmployeeCompetencies, obj.EmployeeCompetencies);
            ContextCollectionSyncer.SyncCollections(_ctx, value.EmployeeCertifications, obj.EmployeeCertifications);
            ContextCollectionSyncer.SyncCollections(_ctx, value.EmployeeHealthItems, obj.EmployeeHealthItems);
            _ = _ctx.Employees.Add(obj);
            if (0 < await _ctx.SaveChangesAsync())
            {
                await _createdPublisher.PublishAsync(obj);
            }
            return(Ok(obj));
        }