コード例 #1
0
 public async Task <bool> Delete(TicketOfUser TicketOfUser)
 {
     if (await ValidateId(TicketOfUser))
     {
     }
     return(TicketOfUser.IsValidated);
 }
コード例 #2
0
        public async Task <ActionResult <TicketOfUser_TicketOfUserDTO> > Delete([FromBody] TicketOfUser_TicketOfUserDTO TicketOfUser_TicketOfUserDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            if (!await HasPermission(TicketOfUser_TicketOfUserDTO.Id))
            {
                return(Forbid());
            }

            TicketOfUser TicketOfUser = ConvertDTOToEntity(TicketOfUser_TicketOfUserDTO);

            TicketOfUser = await TicketOfUserService.Delete(TicketOfUser);

            TicketOfUser_TicketOfUserDTO = new TicketOfUser_TicketOfUserDTO(TicketOfUser);
            if (TicketOfUser.IsValidated)
            {
                return(TicketOfUser_TicketOfUserDTO);
            }
            else
            {
                return(BadRequest(TicketOfUser_TicketOfUserDTO));
            }
        }
コード例 #3
0
        public async Task <bool> Delete(TicketOfUser TicketOfUser)
        {
            await DataContext.TicketOfUser.Where(x => x.Id == TicketOfUser.Id).UpdateFromQueryAsync(x => new TicketOfUserDAO {
                DeletedAt = StaticParams.DateTimeNow
            });

            return(true);
        }
コード例 #4
0
        public async Task <TicketOfUser> Get(long Id)
        {
            TicketOfUser TicketOfUser = await UOW.TicketOfUserRepository.Get(Id);

            if (TicketOfUser == null)
            {
                return(null);
            }
            return(TicketOfUser);
        }
コード例 #5
0
 public TicketOfUser_TicketOfUserDTO(TicketOfUser TicketOfUser)
 {
     this.Id             = TicketOfUser.Id;
     this.Notes          = TicketOfUser.Notes;
     this.UserId         = TicketOfUser.UserId;
     this.TicketId       = TicketOfUser.TicketId;
     this.TicketStatusId = TicketOfUser.TicketStatusId;
     this.Ticket         = TicketOfUser.Ticket == null ? null : new TicketOfUser_TicketDTO(TicketOfUser.Ticket);
     this.TicketStatus   = TicketOfUser.TicketStatus == null ? null : new TicketOfUser_TicketStatusDTO(TicketOfUser.TicketStatus);
     this.User           = TicketOfUser.User == null ? null : new TicketOfUser_AppUserDTO(TicketOfUser.User);
     this.CreatedAt      = TicketOfUser.CreatedAt;
     this.UpdatedAt      = TicketOfUser.UpdatedAt;
     this.Errors         = TicketOfUser.Errors;
 }
コード例 #6
0
        public async Task <ActionResult <TicketOfUser_TicketOfUserDTO> > Get([FromBody] TicketOfUser_TicketOfUserDTO TicketOfUser_TicketOfUserDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            if (!await HasPermission(TicketOfUser_TicketOfUserDTO.Id))
            {
                return(Forbid());
            }

            TicketOfUser TicketOfUser = await TicketOfUserService.Get(TicketOfUser_TicketOfUserDTO.Id);

            return(new TicketOfUser_TicketOfUserDTO(TicketOfUser));
        }
コード例 #7
0
        public async Task <bool> Create(TicketOfUser TicketOfUser)
        {
            TicketOfUserDAO TicketOfUserDAO = new TicketOfUserDAO();

            TicketOfUserDAO.Id             = TicketOfUser.Id;
            TicketOfUserDAO.Notes          = TicketOfUser.Notes;
            TicketOfUserDAO.UserId         = TicketOfUser.UserId;
            TicketOfUserDAO.TicketId       = TicketOfUser.TicketId;
            TicketOfUserDAO.TicketStatusId = TicketOfUser.TicketStatusId;
            TicketOfUserDAO.CreatedAt      = StaticParams.DateTimeNow;
            TicketOfUserDAO.UpdatedAt      = StaticParams.DateTimeNow;
            DataContext.TicketOfUser.Add(TicketOfUserDAO);
            await DataContext.SaveChangesAsync();

            TicketOfUser.Id = TicketOfUserDAO.Id;
            await SaveReference(TicketOfUser);

            return(true);
        }
コード例 #8
0
        public async Task <bool> ValidateId(TicketOfUser TicketOfUser)
        {
            TicketOfUserFilter TicketOfUserFilter = new TicketOfUserFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = TicketOfUser.Id
                },
                Selects = TicketOfUserSelect.Id
            };

            int count = await UOW.TicketOfUserRepository.Count(TicketOfUserFilter);

            if (count == 0)
            {
                TicketOfUser.AddError(nameof(TicketOfUserValidator), nameof(TicketOfUser.Id), ErrorCode.IdNotExisted);
            }
            return(count == 1);
        }
コード例 #9
0
        public async Task <bool> Update(TicketOfUser TicketOfUser)
        {
            TicketOfUserDAO TicketOfUserDAO = DataContext.TicketOfUser.Where(x => x.Id == TicketOfUser.Id).FirstOrDefault();

            if (TicketOfUserDAO == null)
            {
                return(false);
            }
            TicketOfUserDAO.Id             = TicketOfUser.Id;
            TicketOfUserDAO.Notes          = TicketOfUser.Notes;
            TicketOfUserDAO.UserId         = TicketOfUser.UserId;
            TicketOfUserDAO.TicketId       = TicketOfUser.TicketId;
            TicketOfUserDAO.TicketStatusId = TicketOfUser.TicketStatusId;
            TicketOfUserDAO.UpdatedAt      = StaticParams.DateTimeNow;
            await DataContext.SaveChangesAsync();

            await SaveReference(TicketOfUser);

            return(true);
        }
コード例 #10
0
        public async Task <TicketOfUser> Update(TicketOfUser TicketOfUser)
        {
            if (!await TicketOfUserValidator.Update(TicketOfUser))
            {
                return(TicketOfUser);
            }
            try
            {
                var oldData = await UOW.TicketOfUserRepository.Get(TicketOfUser.Id);

                await UOW.Begin();

                await UOW.TicketOfUserRepository.Update(TicketOfUser);

                await UOW.Commit();

                TicketOfUser = await UOW.TicketOfUserRepository.Get(TicketOfUser.Id);

                await Logging.CreateAuditLog(TicketOfUser, oldData, nameof(TicketOfUserService));

                return(TicketOfUser);
            }
            catch (Exception ex)
            {
                await UOW.Rollback();

                if (ex.InnerException == null)
                {
                    await Logging.CreateSystemLog(ex, nameof(TicketOfUserService));

                    throw new MessageException(ex);
                }
                else
                {
                    await Logging.CreateSystemLog(ex.InnerException, nameof(TicketOfUserService));

                    throw new MessageException(ex.InnerException);
                }
            }
        }
コード例 #11
0
 public async Task <bool> Create(TicketOfUser TicketOfUser)
 {
     return(TicketOfUser.IsValidated);
 }
コード例 #12
0
 private async Task SaveReference(TicketOfUser TicketOfUser)
 {
 }
コード例 #13
0
        public async Task <TicketOfUser> GetByTicketId(long Id)
        {
            TicketOfUser TicketOfUser = await DataContext.TicketOfUser.AsNoTracking()
                                        .Where(x => x.TicketId == Id).OrderByDescending(x => x.CreatedAt).Select(x => new TicketOfUser()
            {
                CreatedAt      = x.CreatedAt,
                UpdatedAt      = x.UpdatedAt,
                Id             = x.Id,
                Notes          = x.Notes,
                UserId         = x.UserId,
                TicketId       = x.TicketId,
                TicketStatusId = x.TicketStatusId,
                Ticket         = x.Ticket == null ? null : new Ticket
                {
                    Id                 = x.Ticket.Id,
                    Name               = x.Ticket.Name,
                    Phone              = x.Ticket.Phone,
                    CustomerId         = x.Ticket.CustomerId,
                    UserId             = x.Ticket.UserId,
                    ProductId          = x.Ticket.ProductId,
                    ReceiveDate        = x.Ticket.ReceiveDate,
                    ProcessDate        = x.Ticket.ProcessDate,
                    FinishDate         = x.Ticket.FinishDate,
                    Subject            = x.Ticket.Subject,
                    Content            = x.Ticket.Content,
                    TicketIssueLevelId = x.Ticket.TicketIssueLevelId,
                    TicketPriorityId   = x.Ticket.TicketPriorityId,
                    TicketStatusId     = x.Ticket.TicketStatusId,
                    TicketSourceId     = x.Ticket.TicketSourceId,
                    TicketNumber       = x.Ticket.TicketNumber,
                    DepartmentId       = x.Ticket.DepartmentId,
                    RelatedTicketId    = x.Ticket.RelatedTicketId,
                    SLA                = x.Ticket.SLA,
                    RelatedCallLogId   = x.Ticket.RelatedCallLogId,
                    ResponseMethodId   = x.Ticket.ResponseMethodId,
                    StatusId           = x.Ticket.StatusId,
                    Used               = x.Ticket.Used,
                },
                TicketStatus = x.TicketStatus == null ? null : new TicketStatus
                {
                    Id          = x.TicketStatus.Id,
                    Name        = x.TicketStatus.Name,
                    OrderNumber = x.TicketStatus.OrderNumber,
                    ColorCode   = x.TicketStatus.ColorCode,
                    StatusId    = x.TicketStatus.StatusId,
                    Used        = x.TicketStatus.Used,
                },
                User = x.User == null ? null : new AppUser
                {
                    Id             = x.User.Id,
                    Username       = x.User.Username,
                    DisplayName    = x.User.DisplayName,
                    Address        = x.User.Address,
                    Email          = x.User.Email,
                    Phone          = x.User.Phone,
                    SexId          = x.User.SexId,
                    Birthday       = x.User.Birthday,
                    Avatar         = x.User.Avatar,
                    Department     = x.User.Department,
                    OrganizationId = x.User.OrganizationId,
                    Longitude      = x.User.Longitude,
                    Latitude       = x.User.Latitude,
                    StatusId       = x.User.StatusId,
                },
            }).FirstOrDefaultAsync();

            if (TicketOfUser == null)
            {
                return(null);
            }

            return(TicketOfUser);
        }
コード例 #14
0
        private TicketOfUser ConvertDTOToEntity(TicketOfUser_TicketOfUserDTO TicketOfUser_TicketOfUserDTO)
        {
            TicketOfUser TicketOfUser = new TicketOfUser();

            TicketOfUser.Id             = TicketOfUser_TicketOfUserDTO.Id;
            TicketOfUser.Notes          = TicketOfUser_TicketOfUserDTO.Notes;
            TicketOfUser.UserId         = TicketOfUser_TicketOfUserDTO.UserId;
            TicketOfUser.TicketId       = TicketOfUser_TicketOfUserDTO.TicketId;
            TicketOfUser.TicketStatusId = TicketOfUser_TicketOfUserDTO.TicketStatusId;
            TicketOfUser.Ticket         = TicketOfUser_TicketOfUserDTO.Ticket == null ? null : new Ticket
            {
                Id                 = TicketOfUser_TicketOfUserDTO.Ticket.Id,
                Name               = TicketOfUser_TicketOfUserDTO.Ticket.Name,
                Phone              = TicketOfUser_TicketOfUserDTO.Ticket.Phone,
                CustomerId         = TicketOfUser_TicketOfUserDTO.Ticket.CustomerId,
                UserId             = TicketOfUser_TicketOfUserDTO.Ticket.UserId,
                ProductId          = TicketOfUser_TicketOfUserDTO.Ticket.ProductId,
                ReceiveDate        = TicketOfUser_TicketOfUserDTO.Ticket.ReceiveDate,
                ProcessDate        = TicketOfUser_TicketOfUserDTO.Ticket.ProcessDate,
                FinishDate         = TicketOfUser_TicketOfUserDTO.Ticket.FinishDate,
                Subject            = TicketOfUser_TicketOfUserDTO.Ticket.Subject,
                Content            = TicketOfUser_TicketOfUserDTO.Ticket.Content,
                TicketIssueLevelId = TicketOfUser_TicketOfUserDTO.Ticket.TicketIssueLevelId,
                TicketPriorityId   = TicketOfUser_TicketOfUserDTO.Ticket.TicketPriorityId,
                TicketStatusId     = TicketOfUser_TicketOfUserDTO.Ticket.TicketStatusId,
                TicketSourceId     = TicketOfUser_TicketOfUserDTO.Ticket.TicketSourceId,
                TicketNumber       = TicketOfUser_TicketOfUserDTO.Ticket.TicketNumber,
                DepartmentId       = TicketOfUser_TicketOfUserDTO.Ticket.DepartmentId,
                RelatedTicketId    = TicketOfUser_TicketOfUserDTO.Ticket.RelatedTicketId,
                SLA                = TicketOfUser_TicketOfUserDTO.Ticket.SLA,
                RelatedCallLogId   = TicketOfUser_TicketOfUserDTO.Ticket.RelatedCallLogId,
                ResponseMethodId   = TicketOfUser_TicketOfUserDTO.Ticket.ResponseMethodId,
                StatusId           = TicketOfUser_TicketOfUserDTO.Ticket.StatusId,
                Used               = TicketOfUser_TicketOfUserDTO.Ticket.Used,
            };
            TicketOfUser.TicketStatus = TicketOfUser_TicketOfUserDTO.TicketStatus == null ? null : new TicketStatus
            {
                Id          = TicketOfUser_TicketOfUserDTO.TicketStatus.Id,
                Name        = TicketOfUser_TicketOfUserDTO.TicketStatus.Name,
                OrderNumber = TicketOfUser_TicketOfUserDTO.TicketStatus.OrderNumber,
                ColorCode   = TicketOfUser_TicketOfUserDTO.TicketStatus.ColorCode,
                StatusId    = TicketOfUser_TicketOfUserDTO.TicketStatus.StatusId,
                Used        = TicketOfUser_TicketOfUserDTO.TicketStatus.Used,
            };
            TicketOfUser.User = TicketOfUser_TicketOfUserDTO.User == null ? null : new AppUser
            {
                Id             = TicketOfUser_TicketOfUserDTO.User.Id,
                Username       = TicketOfUser_TicketOfUserDTO.User.Username,
                DisplayName    = TicketOfUser_TicketOfUserDTO.User.DisplayName,
                Address        = TicketOfUser_TicketOfUserDTO.User.Address,
                Email          = TicketOfUser_TicketOfUserDTO.User.Email,
                Phone          = TicketOfUser_TicketOfUserDTO.User.Phone,
                SexId          = TicketOfUser_TicketOfUserDTO.User.SexId,
                Birthday       = TicketOfUser_TicketOfUserDTO.User.Birthday,
                Avatar         = TicketOfUser_TicketOfUserDTO.User.Avatar,
                PositionId     = TicketOfUser_TicketOfUserDTO.User.PositionId,
                Department     = TicketOfUser_TicketOfUserDTO.User.Department,
                OrganizationId = TicketOfUser_TicketOfUserDTO.User.OrganizationId,
                ProvinceId     = TicketOfUser_TicketOfUserDTO.User.ProvinceId,
                Longitude      = TicketOfUser_TicketOfUserDTO.User.Longitude,
                Latitude       = TicketOfUser_TicketOfUserDTO.User.Latitude,
                StatusId       = TicketOfUser_TicketOfUserDTO.User.StatusId,
            };
            TicketOfUser.BaseLanguage = CurrentContext.Language;
            return(TicketOfUser);
        }
コード例 #15
0
        public async Task <ActionResult> Import(IFormFile file)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }
            TicketFilter TicketFilter = new TicketFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = TicketSelect.ALL
            };
            List <Ticket> Tickets = await TicketService.List(TicketFilter);

            TicketStatusFilter TicketStatusFilter = new TicketStatusFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = TicketStatusSelect.ALL
            };
            List <TicketStatus> TicketStatuses = await TicketStatusService.List(TicketStatusFilter);

            AppUserFilter UserFilter = new AppUserFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = AppUserSelect.ALL
            };
            List <AppUser> Users = await AppUserService.List(UserFilter);

            List <TicketOfUser> TicketOfUsers = new List <TicketOfUser>();

            using (ExcelPackage excelPackage = new ExcelPackage(file.OpenReadStream()))
            {
                ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault();
                if (worksheet == null)
                {
                    return(Ok(TicketOfUsers));
                }
                int StartColumn          = 1;
                int StartRow             = 1;
                int IdColumn             = 0 + StartColumn;
                int NotesColumn          = 1 + StartColumn;
                int UserIdColumn         = 2 + StartColumn;
                int TicketIdColumn       = 3 + StartColumn;
                int TicketStatusIdColumn = 4 + StartColumn;

                for (int i = StartRow; i <= worksheet.Dimension.End.Row; i++)
                {
                    if (string.IsNullOrEmpty(worksheet.Cells[i + StartRow, StartColumn].Value?.ToString()))
                    {
                        break;
                    }
                    string IdValue             = worksheet.Cells[i + StartRow, IdColumn].Value?.ToString();
                    string NotesValue          = worksheet.Cells[i + StartRow, NotesColumn].Value?.ToString();
                    string UserIdValue         = worksheet.Cells[i + StartRow, UserIdColumn].Value?.ToString();
                    string TicketIdValue       = worksheet.Cells[i + StartRow, TicketIdColumn].Value?.ToString();
                    string TicketStatusIdValue = worksheet.Cells[i + StartRow, TicketStatusIdColumn].Value?.ToString();

                    TicketOfUser TicketOfUser = new TicketOfUser();
                    TicketOfUser.Notes = NotesValue;
                    Ticket Ticket = Tickets.Where(x => x.Id.ToString() == TicketIdValue).FirstOrDefault();
                    TicketOfUser.TicketId = Ticket == null ? 0 : Ticket.Id;
                    TicketOfUser.Ticket   = Ticket;
                    TicketStatus TicketStatus = TicketStatuses.Where(x => x.Id.ToString() == TicketStatusIdValue).FirstOrDefault();
                    TicketOfUser.TicketStatusId = TicketStatus == null ? 0 : TicketStatus.Id;
                    TicketOfUser.TicketStatus   = TicketStatus;
                    AppUser User = Users.Where(x => x.Id.ToString() == UserIdValue).FirstOrDefault();
                    TicketOfUser.UserId = User == null ? 0 : User.Id;
                    TicketOfUser.User   = User;

                    TicketOfUsers.Add(TicketOfUser);
                }
            }
            TicketOfUsers = await TicketOfUserService.Import(TicketOfUsers);

            if (TicketOfUsers.All(x => x.IsValidated))
            {
                return(Ok(true));
            }
            else
            {
                List <string> Errors = new List <string>();
                for (int i = 0; i < TicketOfUsers.Count; i++)
                {
                    TicketOfUser TicketOfUser = TicketOfUsers[i];
                    if (!TicketOfUser.IsValidated)
                    {
                        string Error = $"Dòng {i + 2} có lỗi:";
                        if (TicketOfUser.Errors.ContainsKey(nameof(TicketOfUser.Id)))
                        {
                            Error += TicketOfUser.Errors[nameof(TicketOfUser.Id)];
                        }
                        if (TicketOfUser.Errors.ContainsKey(nameof(TicketOfUser.Notes)))
                        {
                            Error += TicketOfUser.Errors[nameof(TicketOfUser.Notes)];
                        }
                        if (TicketOfUser.Errors.ContainsKey(nameof(TicketOfUser.UserId)))
                        {
                            Error += TicketOfUser.Errors[nameof(TicketOfUser.UserId)];
                        }
                        if (TicketOfUser.Errors.ContainsKey(nameof(TicketOfUser.TicketId)))
                        {
                            Error += TicketOfUser.Errors[nameof(TicketOfUser.TicketId)];
                        }
                        if (TicketOfUser.Errors.ContainsKey(nameof(TicketOfUser.TicketStatusId)))
                        {
                            Error += TicketOfUser.Errors[nameof(TicketOfUser.TicketStatusId)];
                        }
                        Errors.Add(Error);
                    }
                }
                return(BadRequest(Errors));
            }
        }