public async Task <CustomerFeedbackType> Get(long Id)
        {
            CustomerFeedbackType CustomerFeedbackType = await UOW.CustomerFeedbackTypeRepository.Get(Id);

            if (CustomerFeedbackType == null)
            {
                return(null);
            }
            return(CustomerFeedbackType);
        }
        public Customer_CustomerFeedbackTypeDTO(CustomerFeedbackType CustomerFeedbackType)
        {
            this.Id = CustomerFeedbackType.Id;

            this.Code = CustomerFeedbackType.Code;

            this.Name = CustomerFeedbackType.Name;

            this.Errors = CustomerFeedbackType.Errors;
        }
Esempio n. 3
0
        public async Task <CustomerFeedbackType> Get(long Id)
        {
            CustomerFeedbackType CustomerFeedbackType = await DataContext.CustomerFeedbackType.AsNoTracking()
                                                        .Where(x => x.Id == Id)
                                                        .Select(x => new CustomerFeedbackType()
            {
                Id   = x.Id,
                Code = x.Code,
                Name = x.Name,
            }).FirstOrDefaultAsync();

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

            return(CustomerFeedbackType);
        }
Esempio n. 4
0
        public async Task <ActionResult> Import(IFormFile file)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }
            CustomerFilter CustomerFilter = new CustomerFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = CustomerSelect.ALL
            };
            List <Customer> Customers = await CustomerService.List(CustomerFilter);

            CustomerFeedbackTypeFilter CustomerFeedbackTypeFilter = new CustomerFeedbackTypeFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = CustomerFeedbackTypeSelect.ALL
            };
            List <CustomerFeedbackType> CustomerFeedbackTypes = await CustomerFeedbackTypeService.List(CustomerFeedbackTypeFilter);

            StatusFilter StatusFilter = new StatusFilter
            {
                Skip    = 0,
                Take    = int.MaxValue,
                Selects = StatusSelect.ALL
            };
            List <Status> Statuses = await StatusService.List(StatusFilter);

            List <CustomerFeedback> CustomerFeedbacks = new List <CustomerFeedback>();

            using (ExcelPackage excelPackage = new ExcelPackage(file.OpenReadStream()))
            {
                ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault();
                if (worksheet == null)
                {
                    return(Ok(CustomerFeedbacks));
                }
                int StartColumn                  = 1;
                int StartRow                     = 1;
                int IdColumn                     = 0 + StartColumn;
                int IsSystemCustomerColumn       = 1 + StartColumn;
                int CustomerIdColumn             = 2 + StartColumn;
                int FullNameColumn               = 3 + StartColumn;
                int EmailColumn                  = 4 + StartColumn;
                int PhoneNumberColumn            = 5 + StartColumn;
                int CustomerFeedbackTypeIdColumn = 6 + StartColumn;
                int TitleColumn                  = 7 + StartColumn;
                int SendDateColumn               = 8 + StartColumn;
                int ContentColumn                = 9 + StartColumn;
                int StatusIdColumn               = 10 + 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 IsSystemCustomerValue       = worksheet.Cells[i + StartRow, IsSystemCustomerColumn].Value?.ToString();
                    string CustomerIdValue             = worksheet.Cells[i + StartRow, CustomerIdColumn].Value?.ToString();
                    string FullNameValue               = worksheet.Cells[i + StartRow, FullNameColumn].Value?.ToString();
                    string EmailValue                  = worksheet.Cells[i + StartRow, EmailColumn].Value?.ToString();
                    string PhoneNumberValue            = worksheet.Cells[i + StartRow, PhoneNumberColumn].Value?.ToString();
                    string CustomerFeedbackTypeIdValue = worksheet.Cells[i + StartRow, CustomerFeedbackTypeIdColumn].Value?.ToString();
                    string TitleValue                  = worksheet.Cells[i + StartRow, TitleColumn].Value?.ToString();
                    string SendDateValue               = worksheet.Cells[i + StartRow, SendDateColumn].Value?.ToString();
                    string ContentValue                = worksheet.Cells[i + StartRow, ContentColumn].Value?.ToString();
                    string StatusIdValue               = worksheet.Cells[i + StartRow, StatusIdColumn].Value?.ToString();

                    CustomerFeedback CustomerFeedback = new CustomerFeedback();
                    CustomerFeedback.FullName    = FullNameValue;
                    CustomerFeedback.Email       = EmailValue;
                    CustomerFeedback.PhoneNumber = PhoneNumberValue;
                    CustomerFeedback.Title       = TitleValue;
                    CustomerFeedback.SendDate    = DateTime.TryParse(SendDateValue, out DateTime SendDate) ? SendDate : DateTime.Now;
                    CustomerFeedback.Content     = ContentValue;
                    Customer Customer = Customers.Where(x => x.Id.ToString() == CustomerIdValue).FirstOrDefault();
                    CustomerFeedback.CustomerId = Customer == null ? 0 : Customer.Id;
                    CustomerFeedback.Customer   = Customer;
                    CustomerFeedbackType CustomerFeedbackType = CustomerFeedbackTypes.Where(x => x.Id.ToString() == CustomerFeedbackTypeIdValue).FirstOrDefault();
                    CustomerFeedback.CustomerFeedbackTypeId = CustomerFeedbackType == null ? 0 : CustomerFeedbackType.Id;
                    CustomerFeedback.CustomerFeedbackType   = CustomerFeedbackType;
                    Status Status = Statuses.Where(x => x.Id.ToString() == StatusIdValue).FirstOrDefault();
                    CustomerFeedback.StatusId = Status == null ? 0 : Status.Id;
                    CustomerFeedback.Status   = Status;

                    CustomerFeedbacks.Add(CustomerFeedback);
                }
            }
            CustomerFeedbacks = await CustomerFeedbackService.Import(CustomerFeedbacks);

            if (CustomerFeedbacks.All(x => x.IsValidated))
            {
                return(Ok(true));
            }
            else
            {
                List <string> Errors = new List <string>();
                for (int i = 0; i < CustomerFeedbacks.Count; i++)
                {
                    CustomerFeedback CustomerFeedback = CustomerFeedbacks[i];
                    if (!CustomerFeedback.IsValidated)
                    {
                        string Error = $"Dòng {i + 2} có lỗi:";
                        if (CustomerFeedback.Errors.ContainsKey(nameof(CustomerFeedback.Id)))
                        {
                            Error += CustomerFeedback.Errors[nameof(CustomerFeedback.Id)];
                        }
                        if (CustomerFeedback.Errors.ContainsKey(nameof(CustomerFeedback.IsSystemCustomer)))
                        {
                            Error += CustomerFeedback.Errors[nameof(CustomerFeedback.IsSystemCustomer)];
                        }
                        if (CustomerFeedback.Errors.ContainsKey(nameof(CustomerFeedback.CustomerId)))
                        {
                            Error += CustomerFeedback.Errors[nameof(CustomerFeedback.CustomerId)];
                        }
                        if (CustomerFeedback.Errors.ContainsKey(nameof(CustomerFeedback.FullName)))
                        {
                            Error += CustomerFeedback.Errors[nameof(CustomerFeedback.FullName)];
                        }
                        if (CustomerFeedback.Errors.ContainsKey(nameof(CustomerFeedback.Email)))
                        {
                            Error += CustomerFeedback.Errors[nameof(CustomerFeedback.Email)];
                        }
                        if (CustomerFeedback.Errors.ContainsKey(nameof(CustomerFeedback.PhoneNumber)))
                        {
                            Error += CustomerFeedback.Errors[nameof(CustomerFeedback.PhoneNumber)];
                        }
                        if (CustomerFeedback.Errors.ContainsKey(nameof(CustomerFeedback.CustomerFeedbackTypeId)))
                        {
                            Error += CustomerFeedback.Errors[nameof(CustomerFeedback.CustomerFeedbackTypeId)];
                        }
                        if (CustomerFeedback.Errors.ContainsKey(nameof(CustomerFeedback.Title)))
                        {
                            Error += CustomerFeedback.Errors[nameof(CustomerFeedback.Title)];
                        }
                        if (CustomerFeedback.Errors.ContainsKey(nameof(CustomerFeedback.SendDate)))
                        {
                            Error += CustomerFeedback.Errors[nameof(CustomerFeedback.SendDate)];
                        }
                        if (CustomerFeedback.Errors.ContainsKey(nameof(CustomerFeedback.Content)))
                        {
                            Error += CustomerFeedback.Errors[nameof(CustomerFeedback.Content)];
                        }
                        if (CustomerFeedback.Errors.ContainsKey(nameof(CustomerFeedback.StatusId)))
                        {
                            Error += CustomerFeedback.Errors[nameof(CustomerFeedback.StatusId)];
                        }
                        Errors.Add(Error);
                    }
                }
                return(BadRequest(Errors));
            }
        }