コード例 #1
0
        public async Task <ActionResult <TicketGroup_TicketGroupDTO> > Create([FromBody] TicketGroup_TicketGroupDTO TicketGroup_TicketGroupDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

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

            TicketGroup TicketGroup = ConvertDTOToEntity(TicketGroup_TicketGroupDTO);

            TicketGroup = await TicketGroupService.Create(TicketGroup);

            TicketGroup_TicketGroupDTO = new TicketGroup_TicketGroupDTO(TicketGroup);
            if (TicketGroup.IsValidated)
            {
                return(TicketGroup_TicketGroupDTO);
            }
            else
            {
                return(BadRequest(TicketGroup_TicketGroupDTO));
            }
        }
コード例 #2
0
        private TicketGroup ConvertDTOToEntity(TicketGroup_TicketGroupDTO TicketGroup_TicketGroupDTO)
        {
            TicketGroup TicketGroup = new TicketGroup();

            TicketGroup.Id           = TicketGroup_TicketGroupDTO.Id;
            TicketGroup.Name         = TicketGroup_TicketGroupDTO.Name;
            TicketGroup.OrderNumber  = TicketGroup_TicketGroupDTO.OrderNumber;
            TicketGroup.StatusId     = TicketGroup_TicketGroupDTO.StatusId;
            TicketGroup.TicketTypeId = TicketGroup_TicketGroupDTO.TicketTypeId;
            TicketGroup.Used         = TicketGroup_TicketGroupDTO.Used;
            TicketGroup.Status       = TicketGroup_TicketGroupDTO.Status == null ? null : new Status
            {
                Id   = TicketGroup_TicketGroupDTO.Status.Id,
                Code = TicketGroup_TicketGroupDTO.Status.Code,
                Name = TicketGroup_TicketGroupDTO.Status.Name,
            };
            TicketGroup.TicketType = TicketGroup_TicketGroupDTO.TicketType == null ? null : new TicketType
            {
                Id        = TicketGroup_TicketGroupDTO.TicketType.Id,
                Code      = TicketGroup_TicketGroupDTO.TicketType.Code,
                Name      = TicketGroup_TicketGroupDTO.TicketType.Name,
                ColorCode = TicketGroup_TicketGroupDTO.TicketType.ColorCode,
                StatusId  = TicketGroup_TicketGroupDTO.TicketType.StatusId,
                Used      = TicketGroup_TicketGroupDTO.TicketType.Used,
            };
            TicketGroup.BaseLanguage = CurrentContext.Language;
            return(TicketGroup);
        }
コード例 #3
0
 public async Task <bool> Delete(TicketGroup TicketGroup)
 {
     if (await ValidateId(TicketGroup))
     {
     }
     return(TicketGroup.IsValidated);
 }
コード例 #4
0
        //public void OnTicketClicked(object sender, EventArgs e)
        //{
        //    var GroupTik = (sender as Button).BindingContext as TicketGroupModel;

        //    TicketNumber tik = new TicketNumber();
        //    SQLiteConnection s;
        //    s = DependencyService.Get<ISQLite>().GetConnection();
        //    s.Table<TicketNumber>();
        //    tik.TicketNum = Convert.ToString(GroupTik.TicketID);
        //    //tbr.TblName = Convert.ToString(data.ID);
        //    TicketQuery c = new TicketQuery();
        //    c.InsertDetails(tik);

        //    TicketQuery y = new TicketQuery();
        //    SQLiteConnection d;
        //    d = DependencyService.Get<ISQLite>().GetConnection();
        //    d.Table<TicketNumber>();
        //    var tikcount = s.ExecuteScalar<string>("SELECT TicketNum FROM TicketNumber");

        //   // DisplayAlert("ticket", tikcount, "ok");

        //    // GroupTik.TicketID;
        //    decimal toti = 0;
        //    Navigation.PushAsync(new OnlineCart( toti));

        //}

        public async void GetGroupTickets()
        {
            TableQuery       p = new TableQuery();/////
            SQLiteConnection r;

            r = DependencyService.Get <ISQLite>().GetConnection();
            r.Table <TempTbl>();
            var count = r.ExecuteScalar <string>("SELECT TblName FROM TempTbl");

            //var TicketNu = 0;
            //var FlagNu = 0;

            long LocationId = OnlineLoginPage.LocationDetail;
            var  client     = new HttpClient();
            var  postData   = new List <KeyValuePair <string, string> >();

            postData.Add(new KeyValuePair <string, string>("LocationId", Convert.ToString(LocationId)));
            postData.Add(new KeyValuePair <string, string>("TableID", Convert.ToString(JsonTable.tablenew)));////////
            var content  = new FormUrlEncodedContent(postData);
            var response = await client.PostAsync(RestService.ipupdate + "TicketGroupGet.php", content);

            string contactsJson = response.Content.ReadAsStringAsync().Result;

            TicketGroup ObjContactList = new TicketGroup();

            if (response.IsSuccessStatusCode)
            {
                ObjContactList = JsonConvert.DeserializeObject <TicketGroup>(contactsJson);
                listviewTicketGroup.ItemsSource = ObjContactList.TicketGroupInfo;
            }
        }
コード例 #5
0
        public async Task <bool> Create(TicketGroup TicketGroup)
        {
            await ValidateName(TicketGroup);
            await ValidateTicketType(TicketGroup);
            await ValidateStatus(TicketGroup);

            return(TicketGroup.IsValidated);
        }
コード例 #6
0
 public async Task <bool> ValidateStatus(TicketGroup TicketGroup)
 {
     if (StatusEnum.ACTIVE.Id != TicketGroup.StatusId && StatusEnum.INACTIVE.Id != TicketGroup.StatusId)
     {
         TicketGroup.AddError(nameof(TicketGroupValidator), nameof(TicketGroup.Status), ErrorCode.StatusNotExisted);
     }
     return(TicketGroup.IsValidated);
 }
コード例 #7
0
 public async Task <bool> ValidateTicketType(TicketGroup TicketGroup)
 {
     if (TicketGroup.TicketType == null)
     {
         TicketGroup.AddError(nameof(TicketGroupValidator), nameof(TicketGroup.TicketType), ErrorCode.TicketTypeEmpty);
     }
     return(TicketGroup.IsValidated);
 }
コード例 #8
0
        public async Task <bool> Delete(TicketGroup TicketGroup)
        {
            await DataContext.TicketGroup.Where(x => x.Id == TicketGroup.Id).UpdateFromQueryAsync(x => new TicketGroupDAO {
                DeletedAt = StaticParams.DateTimeNow
            });

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

            if (TicketGroup == null)
            {
                return(null);
            }
            return(TicketGroup);
        }
コード例 #10
0
 public async Task <bool> Update(TicketGroup TicketGroup)
 {
     if (await ValidateId(TicketGroup))
     {
         await ValidateName(TicketGroup);
         await ValidateTicketType(TicketGroup);
         await ValidateStatus(TicketGroup);
     }
     return(TicketGroup.IsValidated);
 }
コード例 #11
0
        public IActionResult CreateTickets(TicketGroup ticketGrp)
        {
            if (ModelState.IsValid)
            {
                ticketscontext.TicketGroup.Add(ticketGrp);
                ticketscontext.SaveChanges();

                return(RedirectToAction("Index"));
            }
            return(View());
        }
コード例 #12
0
 public async Task <bool> ValidateName(TicketGroup TicketGroup)
 {
     if (string.IsNullOrWhiteSpace(TicketGroup.Name))
     {
         TicketGroup.AddError(nameof(TicketGroupValidator), nameof(TicketGroup.Name), ErrorCode.NameEmpty);
     }
     else if (TicketGroup.Name.Length > 255)
     {
         TicketGroup.AddError(nameof(TicketGroupValidator), nameof(TicketGroup.Name), ErrorCode.NameOverLength);
     }
     return(TicketGroup.IsValidated);
 }
コード例 #13
0
        private async Task SaveTicketGroups(List<List<Seat>> groups, int bteId, int ticketsNumber, string url)
        {
            var ticketGroups = new List<TicketGroup>();

            foreach (var group in groups)
            {
                var accessibility = new List<string>();
                var inventoryTypes = new List<string>();
                foreach (var seat in group)
                {
                    accessibility.AddRange(seat.Accessibility);
                    inventoryTypes.AddRange(seat.InventoryTypes);
                }

                accessibility = accessibility.Distinct().OrderBy(x => x).ToList();
                inventoryTypes = inventoryTypes.Distinct().OrderBy(x => x).ToList();

                var firstSeat = group.First();

                var ticketGroup = new TicketGroup()
                {
                    //BteId = bteId,
                    SeatQty = group.Count,
                    ObstructedView = false,
                    StartSeatNumber = firstSeat.Name,
                    EndSeatNumber = group.Last().Name,
                    Row = firstSeat.Row,
                    Section = firstSeat.Section,
                    Offers = firstSeat.Offers.Distinct().ToList(),
                    SeatTypes = firstSeat.SeatTypes,
                    Accessibility = accessibility,
                    InventoryTypes = inventoryTypes,

                };
                ticketGroups.Add(ticketGroup);
            }

            var model = new TicketGroupModel
            {
                Groups = ticketGroups,
                DatePulled = DateTime.UtcNow,
                //BteId = bteId,
                TicketsNumber = ticketsNumber,
                Result = SiteResponse.Success,
                Url = url
            };
            
            await _repository.Add(model);

        }
コード例 #14
0
        public async Task <TicketGroup> Create(TicketGroup TicketGroup)
        {
            if (!await TicketGroupValidator.Create(TicketGroup))
            {
                return(TicketGroup);
            }

            try
            {
                TicketGroupFilter TicketGroupFilter = new TicketGroupFilter
                {
                    Take      = 1,
                    Selects   = TicketGroupSelect.ALL,
                    OrderBy   = TicketGroupOrder.OrderNumber,
                    OrderType = OrderType.DESC
                };
                await UOW.Begin();

                if (TicketGroup.OrderNumber == 0)
                {
                    List <TicketGroup> ticketGroups = await UOW.TicketGroupRepository.List(TicketGroupFilter);

                    TicketGroup.OrderNumber = ticketGroups.Any() ? ticketGroups.Max(c => c.OrderNumber) + 1 : 1;
                }
                await UOW.TicketGroupRepository.Create(TicketGroup);

                await UOW.Commit();

                TicketGroup = await UOW.TicketGroupRepository.Get(TicketGroup.Id);

                await Logging.CreateAuditLog(TicketGroup, new { }, nameof(TicketGroupService));

                return(TicketGroup);
            }
            catch (Exception ex)
            {
                if (ex.InnerException == null)
                {
                    await Logging.CreateSystemLog(ex, nameof(TicketGroupService));

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

                    throw new MessageException(ex.InnerException);
                }
            }
        }
コード例 #15
0
 public TicketGroup_TicketGroupDTO(TicketGroup TicketGroup)
 {
     this.Id           = TicketGroup.Id;
     this.Name         = TicketGroup.Name;
     this.OrderNumber  = TicketGroup.OrderNumber;
     this.StatusId     = TicketGroup.StatusId;
     this.TicketTypeId = TicketGroup.TicketTypeId;
     this.Used         = TicketGroup.Used;
     this.Status       = TicketGroup.Status == null ? null : new TicketGroup_StatusDTO(TicketGroup.Status);
     this.TicketType   = TicketGroup.TicketType == null ? null : new TicketGroup_TicketTypeDTO(TicketGroup.TicketType);
     this.CreatedAt    = TicketGroup.CreatedAt;
     this.UpdatedAt    = TicketGroup.UpdatedAt;
     this.Errors       = TicketGroup.Errors;
 }
コード例 #16
0
        public async Task <ActionResult <TicketGroup_TicketGroupDTO> > Get([FromBody] TicketGroup_TicketGroupDTO TicketGroup_TicketGroupDTO)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

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

            TicketGroup TicketGroup = await TicketGroupService.Get(TicketGroup_TicketGroupDTO.Id);

            return(new TicketGroup_TicketGroupDTO(TicketGroup));
        }
コード例 #17
0
        public TicketIssueLevel_TicketGroupDTO(TicketGroup TicketGroup)
        {
            this.Id = TicketGroup.Id;

            this.Name = TicketGroup.Name;

            this.OrderNumber = TicketGroup.OrderNumber;

            this.StatusId = TicketGroup.StatusId;

            this.TicketTypeId = TicketGroup.TicketTypeId;

            this.TicketType = TicketGroup.TicketType == null ? null : new TicketIssueLevel_TicketTypeDTO(TicketGroup.TicketType);

            this.Used = TicketGroup.Used;

            this.Errors = TicketGroup.Errors;
        }
コード例 #18
0
        public async Task <bool> ValidateId(TicketGroup TicketGroup)
        {
            TicketGroupFilter TicketGroupFilter = new TicketGroupFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = TicketGroup.Id
                },
                Selects = TicketGroupSelect.Id
            };

            int count = await UOW.TicketGroupRepository.Count(TicketGroupFilter);

            if (count == 0)
            {
                TicketGroup.AddError(nameof(TicketGroupValidator), nameof(TicketGroup.Id), ErrorCode.IdNotExisted);
            }
            return(count == 1);
        }
コード例 #19
0
        public async Task <bool> Create(TicketGroup TicketGroup)
        {
            TicketGroupDAO TicketGroupDAO = new TicketGroupDAO();

            TicketGroupDAO.Id           = TicketGroup.Id;
            TicketGroupDAO.Name         = TicketGroup.Name;
            TicketGroupDAO.OrderNumber  = TicketGroup.OrderNumber;
            TicketGroupDAO.StatusId     = TicketGroup.StatusId;
            TicketGroupDAO.TicketTypeId = TicketGroup.TicketTypeId;
            TicketGroupDAO.Used         = TicketGroup.Used;
            TicketGroupDAO.CreatedAt    = StaticParams.DateTimeNow;
            TicketGroupDAO.UpdatedAt    = StaticParams.DateTimeNow;
            DataContext.TicketGroup.Add(TicketGroupDAO);
            await DataContext.SaveChangesAsync();

            TicketGroup.Id = TicketGroupDAO.Id;
            await SaveReference(TicketGroup);

            return(true);
        }
コード例 #20
0
        public async Task <bool> Update(TicketGroup TicketGroup)
        {
            TicketGroupDAO TicketGroupDAO = DataContext.TicketGroup.Where(x => x.Id == TicketGroup.Id).FirstOrDefault();

            if (TicketGroupDAO == null)
            {
                return(false);
            }
            TicketGroupDAO.Id           = TicketGroup.Id;
            TicketGroupDAO.Name         = TicketGroup.Name;
            TicketGroupDAO.OrderNumber  = TicketGroup.OrderNumber;
            TicketGroupDAO.StatusId     = TicketGroup.StatusId;
            TicketGroupDAO.TicketTypeId = TicketGroup.TicketTypeId;
            TicketGroupDAO.Used         = TicketGroup.Used;
            TicketGroupDAO.UpdatedAt    = StaticParams.DateTimeNow;
            await DataContext.SaveChangesAsync();

            await SaveReference(TicketGroup);

            return(true);
        }
コード例 #21
0
        public async Task <TicketGroup> Update(TicketGroup TicketGroup)
        {
            if (!await TicketGroupValidator.Update(TicketGroup))
            {
                return(TicketGroup);
            }
            try
            {
                var oldData = await UOW.TicketGroupRepository.Get(TicketGroup.Id);

                await UOW.Begin();

                await UOW.TicketGroupRepository.Update(TicketGroup);

                await UOW.Commit();

                TicketGroup = await UOW.TicketGroupRepository.Get(TicketGroup.Id);

                await Logging.CreateAuditLog(TicketGroup, oldData, nameof(TicketGroupService));

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

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

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

                    throw new MessageException(ex.InnerException);
                }
            }
        }
コード例 #22
0
        public async Task <TicketGroup> Get(long Id)
        {
            TicketGroup TicketGroup = await DataContext.TicketGroup.AsNoTracking()
                                      .Where(x => x.Id == Id).Select(x => new TicketGroup()
            {
                CreatedAt    = x.CreatedAt,
                UpdatedAt    = x.UpdatedAt,
                Id           = x.Id,
                Name         = x.Name,
                OrderNumber  = x.OrderNumber,
                StatusId     = x.StatusId,
                TicketTypeId = x.TicketTypeId,
                Used         = x.Used,
                Status       = x.Status == null ? null : new Status
                {
                    Id   = x.Status.Id,
                    Code = x.Status.Code,
                    Name = x.Status.Name,
                },
                TicketType = x.TicketType == null ? null : new TicketType
                {
                    Id        = x.TicketType.Id,
                    Code      = x.TicketType.Code,
                    Name      = x.TicketType.Name,
                    ColorCode = x.TicketType.ColorCode,
                    StatusId  = x.TicketType.StatusId,
                    Used      = x.TicketType.Used,
                },
            }).FirstOrDefaultAsync();

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

            return(TicketGroup);
        }
コード例 #23
0
        public async Task <ActionResult> Import(IFormFile file)
        {
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }
            StatusFilter StatusFilter = new StatusFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = StatusSelect.ALL
            };
            List <Status> Statuses = await StatusService.List(StatusFilter);

            TicketGroupFilter TicketGroupFilter = new TicketGroupFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = TicketGroupSelect.ALL
            };
            List <TicketGroup> TicketGroups = await TicketGroupService.List(TicketGroupFilter);

            List <TicketIssueLevel> TicketIssueLevels = new List <TicketIssueLevel>();

            using (ExcelPackage excelPackage = new ExcelPackage(file.OpenReadStream()))
            {
                ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault();
                if (worksheet == null)
                {
                    return(Ok(TicketIssueLevels));
                }
                int StartColumn         = 1;
                int StartRow            = 1;
                int IdColumn            = 0 + StartColumn;
                int NameColumn          = 1 + StartColumn;
                int OrderNumberColumn   = 2 + StartColumn;
                int TicketGroupIdColumn = 3 + StartColumn;
                int StatusIdColumn      = 4 + StartColumn;
                int SLAColumn           = 5 + StartColumn;
                int UsedColumn          = 9 + 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 NameValue          = worksheet.Cells[i + StartRow, NameColumn].Value?.ToString();
                    string OrderNumberValue   = worksheet.Cells[i + StartRow, OrderNumberColumn].Value?.ToString();
                    string TicketGroupIdValue = worksheet.Cells[i + StartRow, TicketGroupIdColumn].Value?.ToString();
                    string StatusIdValue      = worksheet.Cells[i + StartRow, StatusIdColumn].Value?.ToString();
                    string SLAValue           = worksheet.Cells[i + StartRow, SLAColumn].Value?.ToString();
                    string UsedValue          = worksheet.Cells[i + StartRow, UsedColumn].Value?.ToString();

                    TicketIssueLevel TicketIssueLevel = new TicketIssueLevel();
                    TicketIssueLevel.Name        = NameValue;
                    TicketIssueLevel.OrderNumber = long.TryParse(OrderNumberValue, out long OrderNumber) ? OrderNumber : 0;
                    TicketIssueLevel.SLA         = long.TryParse(SLAValue, out long SLA) ? SLA : 0;
                    Status Status = Statuses.Where(x => x.Id.ToString() == StatusIdValue).FirstOrDefault();
                    TicketIssueLevel.StatusId = Status == null ? 0 : Status.Id;
                    TicketIssueLevel.Status   = Status;
                    TicketGroup TicketGroup = TicketGroups.Where(x => x.Id.ToString() == TicketGroupIdValue).FirstOrDefault();
                    TicketIssueLevel.TicketGroupId = TicketGroup == null ? 0 : TicketGroup.Id;
                    TicketIssueLevel.TicketGroup   = TicketGroup;

                    TicketIssueLevels.Add(TicketIssueLevel);
                }
            }
            TicketIssueLevels = await TicketIssueLevelService.Import(TicketIssueLevels);

            if (TicketIssueLevels.All(x => x.IsValidated))
            {
                return(Ok(true));
            }
            else
            {
                List <string> Errors = new List <string>();
                for (int i = 0; i < TicketIssueLevels.Count; i++)
                {
                    TicketIssueLevel TicketIssueLevel = TicketIssueLevels[i];
                    if (!TicketIssueLevel.IsValidated)
                    {
                        string Error = $"Dòng {i + 2} có lỗi:";
                        if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.Id)))
                        {
                            Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.Id)];
                        }
                        if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.Name)))
                        {
                            Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.Name)];
                        }
                        if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.OrderNumber)))
                        {
                            Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.OrderNumber)];
                        }
                        if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.TicketGroupId)))
                        {
                            Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.TicketGroupId)];
                        }
                        if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.StatusId)))
                        {
                            Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.StatusId)];
                        }
                        if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.SLA)))
                        {
                            Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.SLA)];
                        }
                        if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.Used)))
                        {
                            Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.Used)];
                        }
                        Errors.Add(Error);
                    }
                }
                return(BadRequest(Errors));
            }
        }
コード例 #24
0
 private async Task SaveReference(TicketGroup TicketGroup)
 {
 }