public JsonResult SubmitCarrier(CarrierDataObject dataObject)
 {
     CommunicateManager.Invoke <IConsoBusinessmanService>(p =>
     {
         p.SubmitCarrier(dataObject);
     });
     return(Json(null, JsonRequestBehavior.DenyGet));
 }
        /// <summary>
        /// 运营商个人信息
        /// </summary>
        /// <returns></returns>
        public ActionResult CarrierIndex()
        {
            CarrierDataObject dataObject = null;

            CommunicateManager.Invoke <IConsoBusinessmanService>(p =>
            {
                dataObject = p.GetCarrierDetail();
            });
            var carrayCodeModel = new PnrResource().CarrayDictionary.CarrayList.Select(p => new
            {
                AirCode = p.AirCode,
                AirName = p.AirCode + "-" + p.Carry.AirName
            }).ToList();

            carrayCodeModel.Insert(0, new { AirCode = "ALL", AirName = "ALL-所有航空公司" });
            return(View(new { DataObject = dataObject, CarrayCodeModel = carrayCodeModel }));
        }
        public void SubmitCarrier(CarrierDataObject carrier)
        {
            if (carrier == null)
            {
                throw new CustomException(500, "获取信息失败");
            }
            string code  = AuthManager.GetCurrentUser().Code;
            var    model = this.businessmanRepository.FindAll(p => p.Code == code && (p is Carrier || p is Supplier)).FirstOrDefault();

            if (model == null)
            {
                throw new CustomException(400, "获取登录信息失败,请重新登录");
            }
            model.ContactWay = AutoMapper.Mapper.Map <ContactWayDataObject, ContactWay>(carrier.ContactWay);

            var localPolicyRepository = ObjectFactory.GetInstance <ILocalPolicyRepository>();

            if (model is Carrier)
            {
                (model as Carrier).NormalWork = AutoMapper.Mapper.Map <WorkBusinessmanDataObject, WorkBusinessman>(carrier.NormalWork);
                (model as Carrier).RestWork   = AutoMapper.Mapper.Map <WorkBusinessmanDataObject, WorkBusinessman>(carrier.RestWork);

                localPolicyRepository.FindAll(p => p.Code == code || p.CarrierCode == code).ToList().ForEach(p =>
                {
                    p.CarrierWeek = carrier.RestWork.WeekDay;
                    p.Carrier_AnnulTicketTime.StartTime      = carrier.NormalWork.ServiceOnLineTime;
                    p.Carrier_AnnulTicketTime.EndTime        = carrier.NormalWork.ServiceUnLineTime;
                    p.Carrier_ReturnTicketTime.StartTime     = carrier.NormalWork.ServiceOnLineTime;
                    p.Carrier_ReturnTicketTime.EndTime       = carrier.NormalWork.ServiceUnLineTime;
                    p.Carrier_WorkTime.StartTime             = carrier.NormalWork.WorkOnLineTime;
                    p.Carrier_WorkTime.EndTime               = carrier.NormalWork.WorkUnLineTime;
                    p.Carrier_WeekAnnulTicketTime.StartTime  = carrier.RestWork.ServiceOnLineTime;
                    p.Carrier_WeekAnnulTicketTime.EndTime    = carrier.RestWork.ServiceUnLineTime;
                    p.Carrier_WeekReturnTicketTime.StartTime = carrier.RestWork.ServiceOnLineTime;
                    p.Carrier_WeekReturnTicketTime.EndTime   = carrier.RestWork.ServiceUnLineTime;
                    p.Carrier_WeekWorkTime.StartTime         = carrier.RestWork.WorkOnLineTime;
                    p.Carrier_WeekWorkTime.EndTime           = carrier.RestWork.WorkUnLineTime;
                    _ticketUnitOfWorkRepository.PersistUpdateOf(p);
                });
                (model as Carrier).Pids.Clear();
                if (carrier.Pids != null && carrier.Pids.Count > 0)
                {
                    AutoMapper.Mapper.Map <List <PIDDataObject>, List <PID> >(carrier.Pids).ForEach(p =>
                    {
                        (model as Carrier).Pids.Add(p);
                    });
                }
                (model as Carrier).CarrierSettings.Clear();
                if (carrier.CarrierSettings != null && carrier.CarrierSettings.Count > 0)
                {
                    AutoMapper.Mapper.Map <List <CarrierSettingDataObject>, List <CarrierSetting> >(carrier.CarrierSettings).ForEach(p =>
                    {
                        (model as Carrier).CarrierSettings.Add(p);
                    });
                }

                (model as Carrier).Label = carrier.Label;
            }
            else
            {
                (model as Supplier).SupNormalWork = AutoMapper.Mapper.Map <WorkBusinessmanDataObject, WorkBusinessman>(carrier.NormalWork);
                (model as Supplier).SupRestWork   = AutoMapper.Mapper.Map <WorkBusinessmanDataObject, WorkBusinessman>(carrier.RestWork);

                localPolicyRepository.FindAll(p => p.Code == code).ToList().ForEach(p =>
                {
                    p.SupplierWeek = carrier.RestWork.WeekDay;
                    p.AnnulTicketTime.StartTime      = carrier.NormalWork.ServiceOnLineTime;
                    p.AnnulTicketTime.EndTime        = carrier.NormalWork.ServiceUnLineTime;
                    p.ReturnTicketTime.StartTime     = carrier.NormalWork.ServiceOnLineTime;
                    p.ReturnTicketTime.EndTime       = carrier.NormalWork.ServiceUnLineTime;
                    p.WorkTime.StartTime             = carrier.NormalWork.WorkOnLineTime;
                    p.WorkTime.EndTime               = carrier.NormalWork.WorkUnLineTime;
                    p.WeekAnnulTicketTime.StartTime  = carrier.RestWork.ServiceOnLineTime;
                    p.WeekAnnulTicketTime.EndTime    = carrier.RestWork.ServiceUnLineTime;
                    p.WeekReturnTicketTime.StartTime = carrier.RestWork.ServiceOnLineTime;
                    p.WeekReturnTicketTime.EndTime   = carrier.RestWork.ServiceUnLineTime;
                    p.WeeKWorkTime.StartTime         = carrier.RestWork.WorkOnLineTime;
                    p.WeeKWorkTime.EndTime           = carrier.RestWork.WorkUnLineTime;
                    _ticketUnitOfWorkRepository.PersistUpdateOf(p);
                });
                (model as Supplier).SupPids.Clear();
                if (carrier.Pids != null && carrier.Pids.Count > 0)
                {
                    AutoMapper.Mapper.Map <List <PIDDataObject>, List <PID> >(carrier.Pids).ForEach(p =>
                    {
                        (model as Supplier).SupPids.Add(p);
                    });
                }
                (model as Supplier).CarrierSettings.Clear();
                if (carrier.CarrierSettings != null && carrier.CarrierSettings.Count > 0)
                {
                    AutoMapper.Mapper.Map <List <CarrierSettingDataObject>, List <CarrierSetting> >(carrier.CarrierSettings).ForEach(p =>
                    {
                        (model as Supplier).CarrierSettings.Add(p);
                    });
                }
            }
            unitOfWorkRepository.PersistUpdateOf(model);
            unitOfWork.Commit();
            _ticketUnitOfWork.Commit();
        }