Example #1
0
        private async Task <T> Update <T>(OrganizationProjectManagerInput model)
            where T : OrganizationProjectManagerOutput
        {
            _logger.LogTrace(
                GetLogMessage(
                    $@"OrganizationId: {model.OrganizationId}, ProjectManagerId: {model.ProjectManagerId}"));

            // todo: use firstAsync instead of firstOrDefaultAsync() -rod
            var entity = await Repository.Queryable()
                         .FindById(model.ProjectManagerId, model.OrganizationId)
                         .FirstAsync();

            entity.InjectFrom(model);
            entity.Updated = DateTimeOffset.UtcNow;

            await Repository.UpdateAsync(entity, true);

            var result = await GetById <T>(model.ProjectManagerId, model.OrganizationId);

            await Task.Run(() =>
            {
                // todo: i like this way of doing it as opposed to generics -rod
                RaiseEvent(new OrganizationProjectManagerUpdatedEvent
                {
                    OrganizationProjectManager = result
                });
            });

            return(result);
        }
Example #2
0
        public async Task <IActionResult> UpdateProjectManager([FromRoute] Guid organizationId, [FromRoute] Guid personId,
                                                               [FromBody] OrganizationProjectManagerInput input)
        {
            var result = await _projectManagerService
                         .Update <AgencyOwnerOrganizationProjectManagerOutput>(_agencyOwner, input);

            return(Ok(result));
        }
        public async Task <T> Create <T>(OrganizationProjectManagerInput model) where T : OrganizationProjectManagerOutput
        {
            _logger.LogTrace(
                GetLogMessage($@"OrganizationId: {model.OrganizationId}, ProjectManagerId: {model.ProjectManagerId}"));

            var entity = await Repository.Queryable().IgnoreQueryFilters().Where(x =>
                                                                                 x.OrganizationId == model.OrganizationId && x.ProjectManagerId == model.ProjectManagerId)
                         .FirstOrDefaultAsync();

            if (entity != null)
            {
                if (entity.IsDeleted)
                {
                    entity.IsDeleted   = false;
                    entity.UpdatedById = _userInfo.UserId;
                    entity.Updated     = DateTimeOffset.UtcNow;
                    entity.CreatedById = _userInfo.UserId;
                    entity.Created     = DateTimeOffset.UtcNow;

                    entity.InjectFrom(model);

                    await Repository.UpdateAsync(entity, true);
                }
            }
            else
            {
                entity = new OrganizationProjectManager
                {
                    OrganizationId       = model.OrganizationId,
                    ProjectManagerId     = model.ProjectManagerId,
                    ProjectManagerStream = model.ProjectManagerStream,
                    Updated     = DateTimeOffset.UtcNow,
                    UpdatedById = _userInfo.UserId,
                    Created     = DateTimeOffset.UtcNow,
                    CreatedById = _userInfo.UserId
                };

                await Repository.InsertAsync(entity, true);
            }


            var output = await GetById <T>(model.ProjectManagerId, model.OrganizationId);

            await Task.Run(() =>
            {
                RaiseEvent(new OrganizationProjectManagerCreatedEvent {
                    OrganizationProjectManager = output
                });
            });

            return(output);
        }
 public Task <T> Create <T>(IAgencyOwner ao, OrganizationProjectManagerInput input)
     where T : OrganizationProjectManagerOutput
 {
     input.OrganizationId = ao.OrganizationId;
     return(Create <T>(input));
 }
 public Task <T> GetById <T>(OrganizationProjectManagerInput input)
     where T : OrganizationProjectManagerOutput
 {
     return(GetById <T>(input.ProjectManagerId, input.OrganizationId));
 }
Example #6
0
 public Task <T> Update <T>(IOrganizationAccountManager am, OrganizationProjectManagerInput input) where T : OrganizationProjectManagerOutput
 {
     input.OrganizationId = am.OrganizationId;
     return(Update <T>(input));
 }