示例#1
0
        /// <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);
        }
示例#2
0
        /// <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);
        }
示例#3
0
        /// <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);
        }
示例#4
0
        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);
        }
示例#5
0
        /// <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);
        }
示例#6
0
        /// <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);
        }