Esempio n. 1
0
        public IEnumerable <InteractionHistoryViewModel> GetInteractionHistoryByCustomer(SearchViewModel model)
        {
            var findCus = _customerService.Queryable().Where(x => x.PhoneNumber == model.PhoneNumber && x.Delete == false).FirstOrDefault();

            if (findCus != null)
            {
                var result = new List <InteractionHistoryViewModel>();
                //result1.CustomerName = findCus.Name;
                //result1.CustomerPhone = findCus.PhoneNumber;
                var listEvent = _eventService.Queryable().Include(x => x.DetailEvents).Include(x => x.InteractionHistories).Include(x => x.ReminderNotes).Where(x => x.Customer.Id == findCus.Id).ToList();
                if (listEvent.Count > 0)
                {
                    foreach (var item in listEvent)
                    {
                        var history = Queryable().Where(x => x.Event.Id == item.Id).ToList();
                        if (history != null)
                        {
                            foreach (var itemHistory in history)
                            {
                                var Object1 = new InteractionHistoryViewModel();
                                Object1.Type         = itemHistory.Type;
                                Object1.ID           = itemHistory.Id;
                                Object1.Note         = item.Note;
                                Object1.CreatDate    = itemHistory.CreatDate;
                                Object1.EmployeeCall = itemHistory.EmployeeCall;
                                Object1.EmployeeID   = itemHistory.EmployeeID;
                                Object1.EventCode    = item.Code;
                                Object1.Status       = item.Status;
                                Object1.EventNote    = item.Note;
                                Object1.Note         = itemHistory.Note;
                                Object1.EventPurpose = _eventPurposeService.Queryable()
                                                       .Where(t => t.Delete == false && t.Id == item.EventPurposeId).FirstOrDefault().Name;
                                Object1.EventType = _eventTypeService.Queryable()
                                                    .Where(t => t.Delete == false && t.Id == item.EventTypeId).FirstOrDefault().Name;
                                if (item.DetailEvents.Count > 0)
                                {
                                    Object1.Serial          = item.DetailEvents.FirstOrDefault().Serial;
                                    Object1.DetailEventNote = item.DetailEvents.FirstOrDefault().Note;
                                }
                                result.Add(Object1);
                            }
                        }
                    }
                    foreach (var item in result.ToList())
                    {
                    }
                }
                else
                {
                    throw new Exception("Không tìm thấy lịch sử tương tác");
                }

                return(result);
            }
            else
            {
                throw new Exception("Không tìm thấy khách hàng");
            }
        }
Esempio n. 2
0
        public IQueryable <EventViewModel> GetEventForPishop(SearchViewModel model)
        {
            var result = Queryable().Where(x => x.Delete == false &&
                                           x.Tags.Any(y => y.Departments.Id == Config.PishopID) &&
                                           ((!model.From.HasValue) || (DbFunctions.TruncateTime(x.CreatDate) >= DbFunctions.TruncateTime(model.From))) &&
                                           ((!model.To.HasValue) || (DbFunctions.TruncateTime(x.CreatDate) <= DbFunctions.TruncateTime(model.To))))
                         .Select(x => new EventViewModel()
            {
                CreatDate      = x.CreatDate,
                ID             = x.Id,
                Code           = x.Code,
                CustomerID     = x.Customer.Id,
                CustomerName   = x.Customer.Name,
                Address        = x.Customer.Address,
                PhoneNumber    = x.Customer.PhoneNumber,
                EventPurposeID = x.EventPurposeId,
                EventTypeID    = x.EventTypeId,
                Status         = x.Status,
                StatusSeen     = x.StatusSeen,
                UserName       = x.UserAccount.UserName,
                Note           = x.Note,
                Tags           = x.Tags.Select(t => new TagViewModel
                {
                    ID             = t.Id,
                    NameTag        = t.NameTag,
                    CodeTag        = t.CodeTag,
                    DepartmentName = t.Departments.Name
                }).ToList(),
                DetailEvents = x.DetailEvents.Select(t => new DetailEventViewModel
                {
                    ID            = t.Id,
                    Serial        = t.Serial,
                    CreatDate     = t.CreatDate,
                    ProductCode   = t.ProductType.Code,
                    ProductName   = t.ProductType.Name,
                    AgencySold    = t.AgencySold,
                    DateSold      = t.DateSold,
                    AssociateName = t.AssociateName,
                    EventCode     = t.Event.Code,
                    EventID       = t.Event.Id,
                    Note          = t.Note
                }).ToList(),
                ReminderNotes = x.ReminderNotes.Select(t => new ReminderNoteViewModel
                {
                    Note         = t.Note,
                    CreatDate    = t.CreatDate,
                    Serial       = t.Serial,
                    ID           = t.Id,
                    ReminderDate = t.ReminderDate,
                }).ToList(),
                InteractionHistories = x.InteractionHistories.Select(t => new InteractionHistoryViewModel
                {
                    ID           = t.Id,
                    Type         = t.Type,
                    Note         = t.Note,
                    CreatDate    = t.CreatDate,
                    EmployeeCall = t.EmployeeCall,
                    EmployeeID   = t.EmployeeID,
                    EventCode    = t.Event.Code
                }).ToList()
            }).ToList();

            foreach (var item in result)
            {
                item.EventPurposeName = _eventPurposeService.Queryable()
                                        .Where(t => t.Delete == false && t.Id == item.EventPurposeID).FirstOrDefault().Name;
                item.EventTypeName = _eventTypeService.Queryable()
                                     .Where(t => t.Delete == false && t.Id == item.EventTypeID).FirstOrDefault().Name;
            }

            return(result.AsQueryable());
        }