public ActionResult Edit(Guid id)
        {
            List<ViewModels.Contacts.ContactViewModel> employeeContactList;
            List<ViewModels.Billing.BillingRateViewModel> billingRateList;
            List<ViewModels.Billing.BillingGroupViewModel> billingGroupList;
            List<ViewModels.Matters.MatterTypeViewModel> matterTypeList;
            List<ViewModels.Matters.CourtTypeViewModel> courtTypeList;
            List<ViewModels.Matters.CourtGeographicalJurisdictionViewModel> courtGeographicalJurisdictionList;
            List<ViewModels.Matters.CourtSittingInCityViewModel> courtSittingInCityList;
            ViewModels.Matters.EditMatterViewModel viewModel;
            Common.Models.Matters.Matter model;

            employeeContactList = new List<ViewModels.Contacts.ContactViewModel>();
            billingRateList = new List<ViewModels.Billing.BillingRateViewModel>();
            billingGroupList = new List<ViewModels.Billing.BillingGroupViewModel>();
            matterTypeList = new List<ViewModels.Matters.MatterTypeViewModel>();
            courtTypeList = new List<ViewModels.Matters.CourtTypeViewModel>();
            courtGeographicalJurisdictionList = new List<ViewModels.Matters.CourtGeographicalJurisdictionViewModel>();
            courtSittingInCityList = new List<ViewModels.Matters.CourtSittingInCityViewModel>();

            using (IDbConnection conn = Data.Database.Instance.GetConnection())
            {
                model = Data.Matters.Matter.Get(id, conn, false);

                if (model.BillTo != null)
                    model.BillTo = Data.Contacts.Contact.Get(model.BillTo.Id.Value, conn, false);

                if (model.DefaultBillingRate != null)
                    model.DefaultBillingRate = Data.Billing.BillingRate.Get(model.DefaultBillingRate.Id.Value, conn, false);

                if (model.BillingGroup != null)
                    model.BillingGroup = Data.Billing.BillingGroup.Get(model.BillingGroup.Id.Value, conn, false);

                if (model.MatterType != null)
                    model.MatterType = Data.Matters.MatterType.Get(model.MatterType.Id.Value, conn, false);

                if (model.CourtType != null)
                    model.CourtType = Data.Matters.CourtType.Get(model.CourtType.Id.Value, conn, false);

                if (model.CourtGeographicalJurisdiction != null)
                    model.CourtGeographicalJurisdiction = Data.Matters.CourtGeographicalJurisdiction.Get(model.CourtGeographicalJurisdiction.Id.Value, conn, false);

                if (model.CourtSittingInCity != null)
                    model.CourtSittingInCity = Data.Matters.CourtSittingInCity.Get(model.CourtSittingInCity.Id.Value, conn, false);

                Data.Contacts.Contact.ListEmployeesOnly(conn, false).ForEach(x =>
                {
                    employeeContactList.Add(Mapper.Map<ViewModels.Contacts.ContactViewModel>(x));
                });

                Data.Billing.BillingRate.List(conn, false).ForEach(x =>
                {
                    ViewModels.Billing.BillingRateViewModel vm = Mapper.Map<ViewModels.Billing.BillingRateViewModel>(x);
                    vm.Title += " (" + vm.PricePerUnit.ToString("C") + ")";
                    billingRateList.Add(vm);
                });

                Data.Billing.BillingGroup.List(conn, false).ForEach(x =>
                {
                    ViewModels.Billing.BillingGroupViewModel vm = Mapper.Map<ViewModels.Billing.BillingGroupViewModel>(x);
                    vm.Title += " (" + vm.Amount.ToString("C") + ")";
                    billingGroupList.Add(vm);
                });

                Data.Matters.MatterType.List(conn, false).ForEach(x =>
                {
                    ViewModels.Matters.MatterTypeViewModel vm = Mapper.Map<ViewModels.Matters.MatterTypeViewModel>(x);
                    matterTypeList.Add(vm);
                });

                Data.Matters.CourtType.List(conn, false).ForEach(x =>
                {
                    ViewModels.Matters.CourtTypeViewModel vm = Mapper.Map<ViewModels.Matters.CourtTypeViewModel>(x);
                    courtTypeList.Add(vm);
                });

                Data.Matters.CourtGeographicalJurisdiction.List(conn, false).ForEach(x =>
                {
                    ViewModels.Matters.CourtGeographicalJurisdictionViewModel vm = Mapper.Map<ViewModels.Matters.CourtGeographicalJurisdictionViewModel>(x);
                    courtGeographicalJurisdictionList.Add(vm);
                });

                Data.Matters.CourtSittingInCity.List(conn, false).ForEach(x =>
                {
                    ViewModels.Matters.CourtSittingInCityViewModel vm = Mapper.Map<ViewModels.Matters.CourtSittingInCityViewModel>(x);
                    courtSittingInCityList.Add(vm);
                });
            }

            viewModel = new ViewModels.Matters.EditMatterViewModel();
            viewModel.Matter = Mapper.Map<ViewModels.Matters.MatterViewModel>(model);
            viewModel.Matter.BillTo = Mapper.Map<ViewModels.Contacts.ContactViewModel>(model.BillTo);
            viewModel.Matter.DefaultBillingRate = Mapper.Map<ViewModels.Billing.BillingRateViewModel>(model.DefaultBillingRate);
            viewModel.Matter.BillingGroup = Mapper.Map<ViewModels.Billing.BillingGroupViewModel>(model.BillingGroup);
            viewModel.Matter.CourtType = Mapper.Map<ViewModels.Matters.CourtTypeViewModel>(model.CourtType);
            viewModel.Matter.CourtGeographicalJurisdiction = Mapper.Map<ViewModels.Matters.CourtGeographicalJurisdictionViewModel>(model.CourtGeographicalJurisdiction);
            viewModel.Matter.CourtSittingInCity = Mapper.Map<ViewModels.Matters.CourtSittingInCityViewModel>(model.CourtSittingInCity);

            viewModel.EmployeeContactList = employeeContactList;
            viewModel.BillingRateList = billingRateList;
            viewModel.BillingGroupList = billingGroupList;
            viewModel.MatterTypeList = matterTypeList;
            viewModel.CourtTypes = courtTypeList;
            viewModel.CourtGeographicalJurisdictions = courtGeographicalJurisdictionList;
            viewModel.CourtSittingInCities = courtSittingInCityList;

            ViewBag.Matter = model.Title;
            ViewBag.MatterId = model.Id;

            if (viewModel.Matter.MatterType != null && viewModel.Matter.MatterType.Id.HasValue)
                viewModel.MatterTypeId = viewModel.Matter.MatterType.Id.Value;
            if (viewModel.Matter.DefaultBillingRate != null && viewModel.Matter.DefaultBillingRate.Id.HasValue)
                viewModel.DefaultBillingRateId = viewModel.Matter.DefaultBillingRate.Id.Value;
            if (viewModel.Matter.BillingGroup != null && viewModel.Matter.BillingGroup.Id.HasValue)
                viewModel.BillingGroupId = viewModel.Matter.BillingGroup.Id.Value;
            if (viewModel.Matter.CourtType != null && viewModel.Matter.CourtType.Id.HasValue)
                viewModel.CourtTypeId = viewModel.Matter.CourtType.Id.Value;
            if (viewModel.Matter.CourtGeographicalJurisdiction != null && viewModel.Matter.CourtGeographicalJurisdiction.Id.HasValue)
                viewModel.CourtGeographicalJurisdictionId = viewModel.Matter.CourtGeographicalJurisdiction.Id.Value;
            if (viewModel.Matter.CourtSittingInCity != null && viewModel.Matter.CourtSittingInCity.Id.HasValue)
                viewModel.CourtSittingInCityId = viewModel.Matter.CourtSittingInCity.Id.Value;

            return View(viewModel);
        }
Ejemplo n.º 2
0
        public ActionResult Edit(Guid id)
        {
            List<ViewModels.Contacts.ContactViewModel> employeeContactList;
            List<ViewModels.Billing.BillingRateViewModel> billingRateList;
            List<ViewModels.Billing.BillingGroupViewModel> billingGroupList;
            List<ViewModels.Matters.MatterTypeViewModel> matterTypeList;
            ViewModels.Matters.EditMatterViewModel viewModel;
            Common.Models.Matters.Matter model;

            employeeContactList = new List<ViewModels.Contacts.ContactViewModel>();
            billingRateList = new List<ViewModels.Billing.BillingRateViewModel>();
            billingGroupList = new List<ViewModels.Billing.BillingGroupViewModel>();
            matterTypeList = new List<ViewModels.Matters.MatterTypeViewModel>();

            model = Data.Matters.Matter.Get(id);

            if (model.LeadAttorney != null)
                model.LeadAttorney = Data.Contacts.Contact.Get(model.LeadAttorney.Id.Value);

            if (model.BillTo != null)
                model.BillTo = Data.Contacts.Contact.Get(model.BillTo.Id.Value);

            if (model.DefaultBillingRate != null)
                model.DefaultBillingRate = Data.Billing.BillingRate.Get(model.DefaultBillingRate.Id.Value);

            if (model.BillingGroup != null)
                model.BillingGroup = Data.Billing.BillingGroup.Get(model.BillingGroup.Id.Value);

            Data.Contacts.Contact.ListEmployeesOnly().ForEach(x =>
            {
                employeeContactList.Add(Mapper.Map<ViewModels.Contacts.ContactViewModel>(x));
            });

            Data.Billing.BillingRate.List().ForEach(x =>
            {
                ViewModels.Billing.BillingRateViewModel vm = Mapper.Map<ViewModels.Billing.BillingRateViewModel>(x);
                vm.Title += " (" + vm.PricePerUnit.ToString("C") + ")";
                billingRateList.Add(vm);
            });

            Data.Billing.BillingGroup.List().ForEach(x =>
            {
                ViewModels.Billing.BillingGroupViewModel vm = Mapper.Map<ViewModels.Billing.BillingGroupViewModel>(x);
                vm.Title += " (" + vm.Amount.ToString("C") + ")";
                billingGroupList.Add(vm);
            });

            Data.Matters.MatterType.List().ForEach(x =>
            {
                ViewModels.Matters.MatterTypeViewModel vm = Mapper.Map<ViewModels.Matters.MatterTypeViewModel>(x);
                matterTypeList.Add(vm);
            });

            viewModel = new ViewModels.Matters.EditMatterViewModel();
            viewModel.Matter = Mapper.Map<ViewModels.Matters.MatterViewModel>(model);
            viewModel.LeadAttorney = new ViewModels.Matters.MatterContactViewModel();
            viewModel.LeadAttorney.Contact = Mapper.Map<ViewModels.Contacts.ContactViewModel>(model.LeadAttorney);
            viewModel.Matter.BillTo = Mapper.Map<ViewModels.Contacts.ContactViewModel>(model.BillTo);
            viewModel.Matter.DefaultBillingRate = Mapper.Map<ViewModels.Billing.BillingRateViewModel>(model.DefaultBillingRate);
            viewModel.Matter.BillingGroup = Mapper.Map<ViewModels.Billing.BillingGroupViewModel>(model.BillingGroup);

            ViewData["EmployeeContactList"] = employeeContactList;
            ViewData["BillingRateList"] = billingRateList;
            ViewData["BillingGroupList"] = billingGroupList;
            ViewData["MatterTypeList"] = matterTypeList;
            ViewData["Matter"] = model.Title;
            ViewData["MatterId"] = model.Id;

            return View(viewModel);
        }