示例#1
0
        public async Task <ClientCreateResult> Create(ClientCreateParameters parameters)
        {
            var validation = await _clientValidation.ValidateCreateDuplicate(parameters);

            if (validation != UserValidationStatus.Success)
            {
                return(null);
            }
            else
            {
                var result = await _dbContext.Clients.AddAsync(new Client()
                {
                    Name         = parameters.Name,
                    MobileNumber = parameters.MobileNumber,
                    AreaCode     = parameters.AreaCode,
                    Email        = parameters.Email,
                    Password     = parameters.Password,
                    Status       = UserStatus.Inactive,
                });

                await _dbContext.SaveChangesAsync();

                var client = result.Entity;

                return(new ClientCreateResult()
                {
                    Id = client.Id,
                    Name = client.Name,
                    MobileNumber = client.MobileNumber,
                    AreaCode = client.AreaCode,
                    Email = client.Email,
                });
            }
        }
示例#2
0
        public async Task <StorageViewResult> Create(StorageCreateParameters parameters)
        {
            var ticket = await _dbContext.Tickets.FirstOrDefaultAsync(t => t.Id == parameters.TicketId);


            var result = await _dbContext.StorageFiles.AddAsync(new StorageFile
            {
                Extension = parameters.Extension,
                Name      = parameters.Name,
                Ticket    = ticket
            });

            await _dbContext.SaveChangesAsync();

            return(new StorageViewResult
            {
                Id = result.Entity.Id,
                Extension = result.Entity.Extension,
                Name = result.Entity.Name,
            });
        }
        public async Task <ProductCreateResult> Create(ProductCreateParameters parameters)
        {
            if (!await _productValidation.CreateValidation(parameters))
            {
                return(null);
            }

            var product = await _dbContext.Products.AddAsync(new Product
            {
                Name           = parameters.Name,
                TicketPriority = parameters.TicketPriority
            });

            await _dbContext.SaveChangesAsync();

            return(new ProductCreateResult()
            {
                Name = product.Entity.Name,
                Id = product.Entity.Id,
                TicketPriority = product.Entity.TicketPriority
            });
        }
        public async Task <StaffMemberCreateResult> Create(StaffMemberCreateParameters parameters)
        {
            var validation = await _staffValidation.ValidateCreateDuplicate(parameters);

            if (validation != UserValidationStatus.Success)
            {
                return(null);
            }
            else
            {
                var result = await _dbContext.Staff.AddAsync(new StaffMember()
                {
                    Name         = parameters.Name,
                    MobileNumber = parameters.MobileNumber,
                    AreaCode     = parameters.AreaCode,
                    Email        = parameters.Email,
                    BirthDate    = parameters.BirthDate.Date,
                    Address      = parameters.Address,
                    Role         = StaffMemberRole.Employee,
                    Status       = UserStatus.Inactive
                });

                await _dbContext.SaveChangesAsync();

                var staff = result.Entity;

                return(new StaffMemberCreateResult()
                {
                    Id = staff.Id,
                    Name = parameters.Name,
                    MobileNumber = parameters.MobileNumber,
                    AreaCode = parameters.AreaCode,
                    Email = parameters.Email,
                    Address = parameters.Address,
                    Role = staff.Role,
                });
            }
        }
示例#5
0
        public async Task <TicketCreateResult> Create(TicketCreateParameters parameters)
        {
            var product = await _dbContext.Products.FirstOrDefaultAsync(p => p.Id == parameters.ProductId);

            var client = await _dbContext.Clients.FirstOrDefaultAsync(c => c.Id == parameters.ClientId);

            if (product == null || client == null)
            {
                return(null);
            }

            var result = await _dbContext.Tickets.AddAsync(new Ticket()
            {
                Subject        = parameters.Subject,
                Summary        = parameters.Summary,
                Status         = TicketStatus.Open,
                Priority       = product.TicketPriority,
                CreateDateTime = DateTime.Now,
                Product        = product,
                Client         = client,
            });

            await _dbContext.SaveChangesAsync();

            return(new TicketCreateResult()
            {
                Id = result.Entity.Id,
                Subject = result.Entity.Subject,
                Summary = result.Entity.Summary,
                Status = result.Entity.Status,
                ProductName = product.Name,
                ClientName = client.Name,
                Priority = result.Entity.Priority,
                CreateDateTime = result.Entity.CreateDateTime,
            });
        }
示例#6
0
        public async Task <ReplyCreateResult> Create(ReplyCreateParameters parameters)
        {
            var ticket = await _dbContext.Tickets.FirstOrDefaultAsync(p => p.Id == parameters.TicketId);

            var client = await _dbContext.Clients.FirstOrDefaultAsync(c => c.Id == parameters.ClientId);

            var staff = await _dbContext.Staff.FirstOrDefaultAsync(e => e.Id == parameters.StaffId);

            if (ticket == null || client == null)
            {
                return(null);
            }

            var result = await _dbContext.Replies.AddAsync(new Reply()
            {
                CreateDateTime = DateTime.Now,
                Content        = parameters.Content,
                Client         = client,
                Employee       = staff,
                Ticket         = ticket,
                SenderType     = parameters.SenderType
            });

            await _dbContext.SaveChangesAsync();

            var reply = result.Entity;

            return(new ReplyCreateResult()
            {
                Id = reply.Id,
                CreateDateTime = DateTime.Now.Date,
                Content = parameters.Content,
                ClientName = client.Name,
                StaffMemberName = staff?.Name,
                StaffMemberEmail = staff?.Email,
                TicketId = ticket.Id,
            });
        }
        public virtual async Task <bool> CommitAsync(CancellationToken ct = new CancellationToken())
        {
            var rows = await _context.SaveChangesAsync(ct);

            return(rows > 0);
        }