/// <summary> /// Deletes a building by its id /// </summary> /// <param name="buildingId"></param> /// <returns></returns> public async Task <AlpApiResponse> DeleteBuildingById(int buildingId) { var response = new AlpApiResponse(); try { _logger.LogDebug(new { action = nameof(DeleteBuildingById), buildingId }.ToString()); var entity = await _context.Building.FirstOrDefaultAsync(building => building.BuildingId == buildingId); _context.Building.Remove(entity); await _context.SaveChangesAsync(); } catch (Exception e) { _logger.LogError(new { exception = e, message = e.Message, innerException = e, innerExceptionMessage = e.InnerException?.Message }.ToString()); response.Message = e.Message; response.Success = false; } return(response); }
/// <summary> /// checks if the employee is in the table /// if yes, updates it /// if no adds it /// </summary> /// <param name="dto"></param> /// <returns></returns> public async Task <AlpApiResponse> AddOrEditEmployee(EmployeeDto dto) { var response = new AlpApiResponse(); try { _logger.LogDebug(new { action = nameof(AddOrEditEmployee), dto = dto?.ToString() }.ToString()); dto.Validate(); var oldEntity = await _context.Employee.FirstOrDefaultAsync(employee => employee.EmployeeId == dto.Id); if (oldEntity != null) { oldEntity.UpdateEntityByDto(dto); await _context.SaveChangesAsync(); } else { var entity = dto.DtoToEntity(); entity.Department = null; entity.Section = null; await _context.Employee.AddAsync(entity); await _context.SaveChangesAsync(); } } catch (Exception e) { _logger.LogError(new { exception = e, message = e.Message, innerException = e, innerExceptionMessage = e.InnerException?.Message }.ToString()); response.Message = e.Message; response.Success = false; } return(response); }
/// <summary> /// queues the operation for later handling /// if the user is admin, it is immediately handled /// </summary> /// <param name="operationList"></param> /// <param name="sessionToken"></param> /// <returns></returns> public async Task <AlpApiResponse <List <ItemDto> > > QueueOperations(List <OperationDto> operationList, string sessionToken) { var response = new AlpApiResponse <List <ItemDto> >(); try { _logger.LogDebug(new { action = nameof(QueueOperations), operationList = operationList?.ToString() }.ToString()); var roleType = _accountService.GetRoleTypeFromToken(sessionToken); response.Value = new List <ItemDto>(); foreach (var dto in operationList) { var entity = dto.DtoToEntity(); entity.DateOfCompletion = DateTime.Now; await _context.Operation.AddAsync(entity); await _context.SaveChangesAsync(); if (roleType == RoleType.Admin) { var result = await DoOperation(entity.OperationId); if (!result.Success) { var item = await _context.Item.FirstOrDefaultAsync(i => i.ItemId == dto.ItemId); if (item != null) { response.Value.Add(item.EntityToDto()); } } } } } catch (Exception e) { _logger.LogError(new { exception = e, message = e.Message, innerException = e, innerExceptionMessage = e.InnerException?.Message }.ToString()); response.Message = e.Message; response.Success = false; } return(response); }
public async Task <AlpApiResponse <ItemNatureDto> > AddNewItemNature(ItemNatureDto dto) { var response = new AlpApiResponse <ItemNatureDto>(); try { _logger.LogDebug(new { action = nameof(AddNewItemNature), dto = dto?.ToString() }.ToString()); dto.Validate(); var entity = dto.DtoToEntity(); await _context.ItemNature.AddAsync(entity); await _context.SaveChangesAsync(); response.Value = entity.EntityToDto(); } catch (Exception e) { _logger.LogError(new { exception = e, message = e.Message, innerException = e, innerExceptionMessage = e.InnerException?.Message }.ToString()); response.Message = e.Message; response.Success = false; } return(response); }
/// <summary> /// adds a new item /// </summary> /// <param name="dto"></param> /// <returns></returns> public async Task <AlpApiResponse> AddNewItem(ItemDto dto) { var response = new AlpApiResponse(); try { _logger.LogDebug(new { action = nameof(AddNewItem), dto = dto?.ToString() }.ToString()); dto.Validate(); await CheckIfDuplicateAsync(dto); var entity = dto.DtoToEntity(); entity.Building = null; entity.Floor = null; entity.ItemNature = null; entity.ItemState = null; entity.ItemType = null; entity.Department = null; entity.Employee = null; entity.Section = null; entity.DateOfCreation = DateTime.Now; await _context.Item.AddAsync(entity); await _context.SaveChangesAsync(); } catch (Exception e) { _logger.LogError(new { exception = e, message = e.Message, innerException = e, innerExceptionMessage = e.InnerException?.Message }.ToString()); response.Message = e.Message; response.Success = false; } return(response); }
/// <summary> /// Changes the password of an account /// </summary> /// <param name="changePasswordRequest"></param> /// <param name="sessionToken"></param> /// <returns></returns> public async Task <AlpApiResponse> ChangePassword(ChangePasswordRequest changePasswordRequest, string sessionToken) { var response = new AlpApiResponse(); try { _logger.LogDebug(new { action = nameof(ChangePassword), sessionToken }.ToString()); if (string.IsNullOrEmpty(sessionToken)) { response.Success = false; response.Message = "Validásiós hiba a jelszóváltoztatás kérésben!"; return(response); } var session = _encryptionService.Decrypt <SessionTokenData>(sessionToken); if (session?.AccountId == null) { response.Success = false; response.Message = "Validásiós hiba a jelszóváltoztatás kérésben!"; return(response); } if (!changePasswordRequest.Validate()) { response.Success = false; response.Message = "Validációs hiba a jelszóváltoztatás kérésben!"; return(response); } var account = await _context.Account.FirstOrDefaultAsync(acc => acc.AccountId == session.AccountId); if (account == null) { response.Success = false; response.Message = "Nincs ilyen felhasználó az adatbázisban!"; return(response); } if (changePasswordRequest.OldPassword != account.Password) { response.Success = false; response.Message = "Hibás régi jelszó!"; return(response); } if (changePasswordRequest.OldPassword == changePasswordRequest.NewPassword) { response.Success = false; response.Message = "Az új jelszó nem egyezhet meg a régi jelszóval!"; return(response); } account.Password = changePasswordRequest.NewPassword; await _context.SaveChangesAsync(); } catch (Exception e) { _logger.LogError(new { exception = e, message = e.Message, innerException = e, innerExceptionMessage = e.InnerException?.Message }.ToString()); response.Message = e.Message; response.Success = false; } return(response); }