// PUT api/Trip/5 private IHttpActionResult PutTrip(int id, Trip trip) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != trip.Id) { return(BadRequest()); } Uow.Repository <Trip>().Update(trip); try { Uow.Save(); } catch (DbUpdateConcurrencyException) { if (!TripExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public MemberView PatchPersonalInfo(string userName, MemberPersonalInfoView memberPreferencesView) { if (!EmailChecker.IsValidEmail(memberPreferencesView.Email)) { throw new CoralTimeDangerException("Invalid email"); } if (_isDemo) { throw new CoralTimeForbiddenException("Full name can't be changed on demo site"); } CheckRelatedEntities(userName, out var memberByName); memberByName = Uow.MemberRepository.GetQueryByUserName(userName); memberByName.FullName = memberPreferencesView.FullName; try { Uow.MemberRepository.Update(memberByName); Uow.Save(); _memberService.ChangeEmailByUserAsync(memberByName, memberPreferencesView.Email).GetAwaiter().GetResult(); _memberService.UpdateUserClaims(memberByName.Id); Uow.MemberRepository.LinkedCacheClear(); return(memberByName.GetView(Mapper)); } catch (Exception e) { throw new CoralTimeSafeEntityException("An error occurred while updating member", e); } }
public IHttpActionResult DeleteTrip(int id) { try { Trip trip = Uow.Repository <Trip>().Find(id); if (trip == null) { return(NotFound()); } //find tconnects that reference the steps owned by this trip var stepsForTrip = Uow.Repository <Step>().Query().Get().Include(s => s.Block).Where(s => s.TripId.Equals(trip.Id)).Select(i => i.Id).ToList(); List <TConnect> tconn = Uow.Repository <TConnect>().Query().Get().Where(t => stepsForTrip.Any(s => s.Equals(t.InboundStepId))).ToList(); foreach (TConnect tc in tconn) { //Delete the tconnect // TConnect tonnect = Uow.Repository<Trip>().Find(tconn.id); Uow.Repository <TConnect>().Delete(tc); } //Delete the trip (cascade delete will do the steps). Uow.Repository <Trip>().Delete(trip); Uow.Save(); return(Ok(trip)); } catch (Exception ex) { string msg = RecordException(ex, "TripController.DeleteTrip"); HttpResponseMessage responseMessage = Request.CreateErrorResponse(HttpStatusCode.BadRequest, msg); throw new HttpResponseException(responseMessage); } }
public string UploadImage(IFormFile uploadedFile) { var member = MemberImpersonated; CheckFileNameAndSize(uploadedFile); var updatedMemberImage = CreateUpdatedMemberImage(uploadedFile, member); var memberImage = Uow.MemberImageRepository.LinkedCacheGetByMemberId(member.Id); if (memberImage == null) { memberImage = new MemberImage().UpdateProperties(updatedMemberImage); Uow.MemberImageRepository.Insert(memberImage); } else { memberImage.UpdateProperties(updatedMemberImage); Uow.MemberImageRepository.Update(memberImage); } Uow.Save(); Uow.MemberImageRepository.LinkedCacheClear(); SaveMemberImageToFolder(memberImage); var urlAvatar = GetUrlAvatar(member.Id); return(urlAvatar); }
public ClientView Create(ClientView clientData) { if (!IsNameUnique(clientData.Name)) { throw new CoralTimeAlreadyExistsException($"Client with name {clientData.Name} already exist."); } var client = Mapper.Map <ClientView, Client>(clientData); client.IsActive = true; BLHelpers.CheckClientsErrors(client); try { Uow.ClientRepository.Insert(client); Uow.Save(); Uow.ClientRepository.LinkedCacheClear(); } catch (Exception e) { throw new CoralTimeDangerException("An error occurred while creating new client", e); } var getClient = Uow.ClientRepository.LinkedCacheGetById(client.Id); var result = getClient.GetView(Mapper); return(result); }
public ClientView Update(dynamic clientData) { var client = Uow.ClientRepository.GetById((int)clientData.Id); if (client == null) { throw new CoralTimeEntityNotFoundException($"Client with id {clientData.Id} not found"); } UpdateService <Client> .UpdateObject(clientData, client); BLHelpers.CheckClientsErrors(client); // Get all project linked to this client and remember projects that active before an archiving. RememberProjectStatusBeforeArchiving(clientData, client); try { Uow.ClientRepository.Update(client); Uow.Save(); Uow.ClientRepository.LinkedCacheClear(); } catch (Exception e) { throw new CoralTimeDangerException("An error occurred while updating the client", e); } var resultClient = Uow.ClientRepository.LinkedCacheGetById(client.Id); var result = resultClient.GetView(Mapper); return(result); }
public bool Delete(int id) { var projectById = Uow.ProjectRepository.LinkedCacheGetById(id); if (projectById == null || !projectById.IsActive) { { throw new CoralTimeEntityNotFoundException("project with id " + $"{id} not found or is not active"); } } try { Uow.ProjectRepository.Delete(projectById.Id); Uow.Save(); Uow.ProjectRepository.LinkedCacheClear(); return(true); } catch (Exception e) { throw new CoralTimeDangerException("An error occurred while deleting timeEntryType", e); } }
public void SaveCustomQuery(ReportsSettingsView reportsSettingsView) { if (!IsDefaultQuery(reportsSettingsView.QueryName)) { var memberId = MemberImpersonated.Id; var reportsSettings = Uow.ReportsSettingsRepository.GetEntityFromContext_ByMemberIdQueryName(memberId, reportsSettingsView.QueryName); if (reportsSettings == null) { ResetIsCustomQueryForAllQueryThisMember(memberId); reportsSettings = new ReportsSettings().GetModel(reportsSettingsView, memberId); Uow.ReportsSettingsRepository.Insert(reportsSettings); Uow.Save(); Uow.ReportsSettingsRepository.LinkedCacheClear(); } else { throw new CoralTimeDangerException("You try to save existed custom query"); } } else { throw new CoralTimeDangerException("You try to save not custom query"); } }
private void SaveQueryToReportsSettings(ReportsSettingsView reportsSettingsView, int memberId) { var queryFromReportsSettings = Uow.ReportsSettingsRepository.GetEntityFromContex_ByMemberidQueryname(memberId, reportsSettingsView.QueryName); try { if (queryFromReportsSettings == null) { queryFromReportsSettings = queryFromReportsSettings.CreateModelForInsert(reportsSettingsView, memberId); SetIsCurrentQueryTrue(queryFromReportsSettings); Uow.ReportsSettingsRepository.Insert(queryFromReportsSettings); } else { queryFromReportsSettings = queryFromReportsSettings.UpdateModelForUpdates(reportsSettingsView, memberId); SetIsCurrentQueryTrue(queryFromReportsSettings); Uow.ReportsSettingsRepository.Update(queryFromReportsSettings); } Uow.Save(); } catch (Exception e) { throw new CoralTimeDangerException("An error occurred while work with Reports Settings", e); } }
public HttpResponseMessage DeleteState(int id) { Uow.States.Delete(id); Uow.Save(); return(Request.CreateResponse(HttpStatusCode.NoContent)); }
public TaskTypeView Create(TaskTypeView taskTypeView) { IsTaskTypeNameHasChars(taskTypeView.Name); IsNameUnique(taskTypeView); if (taskTypeView.ProjectId != null && !ApplicationUserCurrent.IsAdmin) { if (taskTypeView.ProjectId != null) { var project = Uow.ProjectRepository.LinkedCacheGetById((int)taskTypeView.ProjectId); if (project == null) { throw new CoralTimeEntityNotFoundException($"Project with id {taskTypeView.ProjectId} not found"); } var managerRoleId = Uow.ProjectRoleRepository.GetManagerRoleId(); var memberProjectRole = Uow.MemberProjectRoleRepository.LinkedCacheGetList().FirstOrDefault(r => r.MemberId == MemberCurrent.Id && r.ProjectId == project.Id && r.RoleId == managerRoleId); if (memberProjectRole == null) { throw new CoralTimeForbiddenException("Forbidden"); } } } var taskType = taskTypeView.GetModel(Mapper, true); Uow.TaskTypeRepository.Insert(taskType); Uow.Save(); Uow.TaskTypeRepository.LinkedCacheClear(); return(Uow.TaskTypeRepository.LinkedCacheGetById(taskType.Id).GetView(Mapper)); }
public HttpResponseMessage EditState(int id, [FromBody] State state) { Uow.States.EditState(id, state); Uow.Save(); return(Request.CreateResponse(HttpStatusCode.NoContent)); }
public void DeleteCustomQuery(int id, string userName) { Uow.UserRepository.GetRelatedUserByName(userName); var memberId = Uow.MemberRepository.GetQueryByUserName(userName).Id; var getReportsSettingsByid = Uow.ReportsSettingsRepository.GetEntityOutOfContex_ByMemberidQueryId(memberId: memberId, queryId: id); CheckCustomQueryForThisMember(id, getReportsSettingsByid); if (!IsDefaultQuery(getReportsSettingsByid.QueryName)) { try { Uow.ReportsSettingsRepository.Delete(id); Uow.Save(); } catch (Exception e) { throw new CoralTimeDangerException("An error occurred while work with Reports Settings", e); } } else { throw new CoralTimeDangerException("You cannot delete default query for ReportsSettings"); } }
public void SaveCurrentQuery(ReportsSettingsView reportsSettingsView, string userName) { Uow.UserRepository.GetRelatedUserByName(userName); var memberId = Uow.MemberRepository.GetQueryByUserName(userName).Id; if (IsDefaultQuery(reportsSettingsView.QueryName)) { SaveQuery(reportsSettingsView, memberId); } else { var queryFromReportsSettings = Uow.ReportsSettingsRepository.GetEntityFromContex_ByMemberidQueryname(memberId, reportsSettingsView.QueryName); if (queryFromReportsSettings != null && !queryFromReportsSettings.IsCurrentQuery) { try { ResetIsCustomQueryForAllQueries(memberId); SetIsCurrentQueryTrue(queryFromReportsSettings); Uow.ReportsSettingsRepository.Update(queryFromReportsSettings); Uow.Save(); } catch (Exception e) { throw new CoralTimeDangerException("An error occurred while work with Reports Settings", e); } } } }
public void Delete(int timeEntryId) { var timeEntryById = GetRelatedTimeEntryById(timeEntryId); var timeEntryView = new TimeEntryView { ProjectId = timeEntryById.ProjectId, MemberId = timeEntryById.MemberId, TaskTypesId = timeEntryById.TaskTypesId, Date = timeEntryById.Date }; // Check if exists related entities. CheckRelatedEntities(timeEntryView, timeEntryById, InpersonatedUserName, out var relatedMemberByName, out var relatedProjectById); // Check Lock TimeEntries: User cannot Create TimeEntry, if enable Lock TimeEntry in Project settings. CheckLockTimeEntryByProjectSettings(timeEntryView.Date, relatedProjectById); #region Delete TimeEntry from DB. try { Uow.TimeEntryRepository.Delete(timeEntryById.Id); Uow.Save(); } catch (Exception e) { throw new CoralTimeDangerException("An error occurred while deleting the TimeEntry", e); } #endregion }
public void Update(SampleDTO sampleDTO) { // Validation if (sampleDTO.Name.Length > 25) { throw new ValidationException($"The length of {nameof(sampleDTO.Name)} must be less then 25" , nameof(sampleDTO.Name)); } if (sampleDTO.Description.Length > 255) { throw new ValidationException($"The length of {nameof(sampleDTO.Description)} must be less then 25" , nameof(sampleDTO.Description)); } if (sampleDTO == null) { throw new ArgumentNullException($"null object({nameof(sampleDTO)}) can not be passed to Update method of base service"); } var sample = SampleMapper.Map <SampleDTO, Sample>(sampleDTO); Uow.Samples.Update(sample); Uow.Save(); }
public TimeEntryView Update(TimeEntryView timeEntryView) { var timeEntryById = GetRelatedTimeEntryById(timeEntryView.Id); // Check if exists related entities. CheckRelatedEntities(timeEntryView, timeEntryById, InpersonatedUserName, out var relatedMemberByName, out var relatedProjectById); // Check Lock TimeEntries: User cannot Create TimeEntry, if enable Lock TimeEntry in Project settings. CheckLockTimeEntryByProjectSettings(timeEntryView.Date, relatedProjectById); // Check correct timing values from TimeEntryView. CheckCorrectTimingValues(timeEntryView.TimeFrom, timeEntryView.TimeTo, timeEntryView.Time); // Check that total time per day is not grater than 24 hours. CheckTotalTimeAtDay(relatedMemberByName, timeEntryView, timeEntryById); // Update values for TimeEntry. UpdateValuesForTimeEntry(timeEntryById, timeEntryView); #region Update TimeEntry in DB. try { Uow.TimeEntryRepository.Update(timeEntryById); Uow.Save(); return(timeEntryById.GetViewTimeEntry(InpersonatedUserName, Mapper)); } catch (Exception e) { throw new CoralTimeDangerException("An error occurred while updating TimeEntry", e); } #endregion }
public async Task <bool> Adicionar(Fornecedor entidade) { try { if (!ExecutarValidacao(new FornecedorValidacao(), entidade)) { return(false); } if (FornecedorRepositorio.Buscar(f => f.Documento == entidade.Documento, null, true, 0, 0).Result.Item1.Any()) { Notificar(mensagem: "Já existe um fornecedor com este documento informado"); return(false); } await FornecedorRepositorio.Adicionar(entidade); await Uow.Save(); } catch (Exception ex) { throw ex; } return(true); }
public async Task <bool> Atualizar(Fornecedor entidade) { try { if (!ExecutarValidacao(new FornecedorValidacao(), entidade)) { return(false); } var fornecedorBanco = await FornecedorRepositorio.ObterPorId(entidade.Id); fornecedorBanco.Ativo = entidade.Ativo != fornecedorBanco.Ativo ? entidade.Ativo : fornecedorBanco.Ativo; fornecedorBanco.DataCadastro = entidade.DataCadastro != fornecedorBanco.DataCadastro ? entidade.DataCadastro : fornecedorBanco.DataCadastro; fornecedorBanco.Documento = entidade.Documento != fornecedorBanco.Documento ? entidade.Documento : fornecedorBanco.Documento; fornecedorBanco.Nome = entidade.Nome != fornecedorBanco.Nome ? entidade.Nome : fornecedorBanco.Nome; await FornecedorRepositorio.Atualizar(fornecedorBanco); await Uow.Save(); return(true); } catch (Exception ex) { Notificar("Ocorreu um erro: " + ex.Message); return(false); } }
public IHttpActionResult Post(UserModel user) { User userTemp = new User(); if (user != null) { if (user.Email != null) { var userObj = Uow.Repository <User>().FirstOrDefault(t => t.Email == user.Email); if (userObj != null) { return(Ok("Same Email Exists")); } } var passwordHash = AppUow.PasswordEncryption.Encrypt(user.Password); userTemp.Password = passwordHash.PasswordHash; userTemp.Salt = passwordHash.Salt; userTemp.FirstName = user.FirstName; userTemp.LastName = user.LastName; userTemp.Email = user.Email; userTemp.Contact = user.Contact; userTemp.Address = user.Address; userTemp.RoleId = 2; userTemp.GenderId = user.GenderId; Uow.Save(); } return(Ok(UserDomain.PostUser(userTemp))); }
public void Delete(int id) { var member = Uow.MemberRepository.LinkedCacheGetByName(InpersonatedUserName); if (member == null || !member.User.IsActive) { throw new CoralTimeEntityNotFoundException($"Member with userName {InpersonatedUserName} not found or is not active"); } var projectRole = Uow.MemberProjectRoleRepository.GetById(id); if (projectRole == null) { throw new CoralTimeEntityNotFoundException($"ProjectRole with id {id} not found"); } var hasAccessAsManager = HasAccessAsManager(member.Id, new MemberProjectRoleView { ProjectId = projectRole.ProjectId, RoleId = projectRole.RoleId }); if (member.User.IsAdmin || hasAccessAsManager) { Uow.MemberProjectRoleRepository.Delete(id); Uow.Save(); Uow.MemberProjectRoleRepository.LinkedCacheClear(); UpdateIsManager(projectRole.MemberId); } else { throw new CoralTimeForbiddenException($"Member with id {member.Id} is not allowed to delete projectRole on project with id {projectRole.ProjectId} and role with id {projectRole.RoleId}."); } }
public void Handle(PersonAddCommand command) { var data = new Person() { PersonRefId = command.PersonRefId, FirstName = command.FirstName, LastName = command.LastName, DateOfBirth = command.DateOfBirth, Address = command.Address, BeltId = command.BeltId, Stripes = command.Stripes }; _uow.PeopleRepo.Create(data); data.RaiseDomainEvent(new PersonAddedEvent(data.PersonRefId, command.FirstName, command.LastName, command.DateOfBirth, command.Address, command.BeltId, command.Stripes)); _uow.Save(); }
public IActionResult Create(int Id) { var deleteHotel = Uow.Repository <Hotel>().Get(Id); Uow.Repository <Hotel>().Delete(deleteHotel); Uow.Save(); return(RedirectToAction("Index")); }
public async Task <bool> Remover(Endereco endereco) { await enderecoRepositorio.Remover(endereco); await Uow.Save(); return(true); }
public async Task <bool> Adicionar(Endereco endereco) { await enderecoRepositorio.Adicionar(endereco); await Uow.Save(); return(true); }
private async Task <Member> CreateNewUserCommon(MemberView memberView, ApplicationUser newUser, string userRole) { var userByName = Uow.UserRepository.LinkedCacheGetByName(memberView.UserName); if (userByName != null) { throw new CoralTimeAlreadyExistsException($"User with userName {memberView.UserName} already exist"); } // Identity #1. Create User in db.AspNetUsers. var userCreationResult = await _userManager.CreateAsync(newUser, memberView.Password); if (!userCreationResult.Succeeded) { CheckIdentityResultErrors(userCreationResult); } // Identity #2. Create role for user in db.AspNetUserRoles. var memberUser = await _userManager.FindByNameAsync(newUser.UserName); var userCreateRoleResult = await _userManager.AddToRoleAsync(memberUser, UserRole); if (!userCreateRoleResult.Succeeded) { CheckIdentityResultErrors(userCreateRoleResult); } #region Set UserId to new Member. Save to Db. Get Member from Db with related entity User by UserId. // 1. Convert MemberView to Member. var newMember = Mapper.Map <MemberView, Member>(memberView); // 2. Assign UserId to Member (After Save, when you try to get entity from Db, before assign UserId to entity then it has Related Entity User). newMember.UserId = memberUser.Id; // 3. Save in Db. Uow.MemberRepository.Insert(newMember); Uow.Save(); // 4. Clear cache for Members. Uow.MemberRepository.LinkedCacheClear(); // 5. Get From Db -> Cache New Member. (Get entity With new created related entity - User) var memberByName = Uow.MemberRepository.LinkedCacheGetByName(memberView.UserName); #endregion // Identity #3. Create claims. Add Claims for user in AspNetUserClaims. var claimsUser = ClaimsCreator.GetUserClaims(memberUser.UserName, memberView.FullName, memberView.Email, userRole, memberByName.Id); var claimsUserResult = await _userManager.AddClaimsAsync(memberUser, claimsUser); if (!claimsUserResult.Succeeded) { CheckIdentityResultErrors(userCreateRoleResult); } return(memberByName); }
public TaskTypeView Update(TaskTypeView taskTypeView) { IsTaskTypeNameHasChars(taskTypeView.Name); IsNameUnique(taskTypeView); var taskType = Uow.TaskTypeRepository.GetQueryWithIncludesById(taskTypeView.Id); if (taskType == null) { throw new CoralTimeEntityNotFoundException($"TaskType with id {taskTypeView.Id} not found"); } #region We shouldn't change projectId for Tasks if (taskType.ProjectId != taskTypeView.ProjectId) { taskTypeView.ProjectId = taskType.ProjectId; } #endregion We shouldn't change projectId for Tasks if (taskTypeView.ProjectId != null && !ApplicationUserCurrent.IsAdmin) { var project = Uow.ProjectRepository.LinkedCacheGetById((int)taskTypeView.ProjectId); if (project == null) { throw new CoralTimeEntityNotFoundException($"Project with id {taskTypeView.ProjectId} not found"); } var managerRoleId = Uow.ProjectRoleRepository.GetManagerRoleId(); var memberProjectRole = Uow.MemberProjectRoleRepository.LinkedCacheGetList() .FirstOrDefault(r => r.MemberId == MemberCurrent.Id && r.ProjectId == project.Id && r.RoleId == managerRoleId); if (memberProjectRole == null) { throw new CoralTimeForbiddenException("Forbidden"); } } if (!taskTypeView.IsActive) { var timeEntries = Uow.TimeEntryRepository.GetQueryWithIncludes() .Where(t => t.TaskTypesId == taskType.Id && t.Date.Date == DateTime.Now.Date) .ToList(); timeEntries.ForEach(t => t.StopTimer()); } UpdateValuesForTaskType(taskType, taskTypeView); Uow.TaskTypeRepository.Update(taskType); Uow.Save(); Uow.TaskTypeRepository.LinkedCacheClear(); return(Uow.TaskTypeRepository.LinkedCacheGetById(taskType.Id).GetView(Mapper)); }
// GET: Reservations/Cancel/5 public ActionResult Cancel(int id) { var reservation = new Reservation(); reservation = Uow.Repository <Reservation>().Get(r => r.ReservationId == id); reservation.Status = StatusReservation.Cancelled; Uow.Repository <Reservation>().Update(reservation); Uow.Save(); return(RedirectToAction(nameof(Index))); }
public void Delete(int?id) { if (!id.HasValue) { throw new ValidationException("The Sample's id value is not set", String.Empty); } Uow.Samples.Delete(id.Value); Uow.Save(); }
public TaskType Create(TaskView taskTypeData, string userName) { if (!IsNameUnique(taskTypeData.Name, taskTypeData.ProjectId)) { throw new CoralTimeAlreadyExistsException($"Task with name {taskTypeData.Name} already exist"); } var user = Uow.UserRepository.LinkedCacheGetByName(userName); if (taskTypeData.ProjectId != null && !user.IsAdmin) { var project = Uow.ProjectRepository.GetById(taskTypeData.ProjectId); if (project == null) { throw new CoralTimeEntityNotFoundException($"Project with id {taskTypeData.ProjectId} not found"); } var member = Uow.MemberRepository.LinkedCacheGetByName(userName); if (member == null) { throw new CoralTimeEntityNotFoundException($"Member with userName {userName} not found"); } var managerRoleId = Uow.ProjectRoleRepository.GetManagerRoleId(); var memberProjectRole = Uow.MemberProjectRoleRepository.GetQueryWithIncludes() .FirstOrDefault(r => r.MemberId == member.Id && r.ProjectId == project.Id && r.RoleId == managerRoleId); if (memberProjectRole == null) { throw new CoralTimeForbiddenException("Forbidden"); } } var timeEntryType = Mapper.Map <TaskView, TaskType>(taskTypeData); timeEntryType.IsActive = true; try { Uow.TaskTypeRepository.Insert(timeEntryType); Uow.Save(); ClearCache(); } catch (Exception e) { throw new CoralTimeDangerException("An error occurred while creating timeEntryType", e); } var result = Uow.TaskTypeRepository.GetById(timeEntryType.Id); return(result); }