/******************************************************************************************
        * From domain model to value object
        ******************************************************************************************/
        public ReturnDeviceRequestDTO ToRequestDTO(ReturnDeviceRequest o)
        {
            var vo = new ReturnDeviceRequestDTO();

            ClassCopier.Instance.Copy(o, vo);

            if (o.RequestInfo != null)
            {
                vo.RequestInfo = ToRequestInfoDTO(o.RequestInfo);
            }
            if (o.Routings.Count > 0)
            {
                vo.Routings = ToRoutingInfosDTO(o.Routings);
            }

            return(vo);
        }
        /******************************************************************************************
        * From value object to domain model
        ******************************************************************************************/
        public ReturnDeviceRequest ToRequest(ReturnDeviceRequestDTO vo)
        {
            var o = new ReturnDeviceRequest();

            ClassCopier.Instance.Copy(vo, o);

            if (vo.RequestInfo != null)
            {
                o.RequestInfo = ToRequestInfo(vo.RequestInfo);
            }
            if (vo.Routings.Count > 0)
            {
                o.Routings = ToRoutingInfos(vo.Routings);
            }

            return(o);
        }
        public ReturnDeviceRequestDTO GetDummyData()
        {
            var now      = DateTime.Now;
            var workflow = new List <RoutingItemDTO>
            {
                new RoutingItemDTO
                {
                    ActualDate     = now,
                    BaseDate       = now,
                    Division       = "Warehouse",
                    DivisionStatus = false,
                    Instruction    = "Fixed the information please!",
                    PlanDate       = now,
                    Response       = "Muke gile...",
                    RoutingStatus  = ERoutingStatus.IN_PROGRESS,
                    SaStatus       = false,
                    Step           = 1
                },
                new RoutingItemDTO
                {
                    ActualDate     = now,
                    BaseDate       = now,
                    Division       = "Sales Admin",
                    DivisionStatus = false,
                    Instruction    = "Fixed the information please!",
                    PlanDate       = now,
                    Response       = "Muke gile juga!",
                    RoutingStatus  = ERoutingStatus.IN_PROGRESS,
                    SaStatus       = false,
                    Step           = 2
                }
            };

            var routings = new List <ReturnDeviceRoutingInfoDTO>
            {
                new ReturnDeviceRoutingInfoDTO
                {
                    Routings     = workflow,
                    CreateDate   = now,
                    CurrentStep  = 1,
                    IdrWebNumber = "IDR-234234",
                    OldContract  = new ReturnDeviceOldContractDTO
                    {
                        Device          = "Laptop",
                        DeviceSn        = "343234",
                        EquipDesc       = "Laptop Lenovo i3",
                        Equipment       = "234324",
                        OldHolderName   = "Indra Birowo",
                        OldLineNumber   = "32",
                        OldNumber       = "OLD-54534534",
                        OldSalaryNumber = "SAL-4323423",
                    },
                    RoutingMemo = "Mohon segera diganti sama Laptop baru",
                    UpdContract = new ReturnDeviceUpdatedContractDTO
                    {
                        Device               = "Laptop",
                        DeviceSn             = "343234",
                        EquipDesc            = "Laptop Lenovo i3",
                        Equipment            = "234324",
                        OldHolderName        = "Indra Birowo",
                        OldLineNumber        = "32",
                        OldNumber            = "OLD-54534534",
                        OldSalaryNumber      = "SAL-4323423",
                        UpdLocation          = "Tangerang",
                        ReturnDeliveryNumber = "RET-532424234"
                    }
                }
            };

            var req = new ReturnDeviceRequestDTO
            {
                Id          = _indexDao.NewServiceRequestId(),
                RequestInfo = new ReturnDeviceRequestInfoDTO
                {
                    Company       = "PT. Maju Mundur Wenak",
                    Email         = "*****@*****.**",
                    Location      = "Jakarta",
                    Id            = _indexDao.NewRequestInfoId(),
                    RequestMemo   = "Tolong diganti dong Laptopnyeee!",
                    RequestedBy   = "Donan Febrianto",
                    RequestedDate = now,
                    RequestedVia  = "Wassap",
                    SnOrIdNumber  = "SN-1221312"
                },
                IssuedBy   = "Warehouse",
                IssuedDate = now,
                Scenario   = EScenario.RETURN_DEVICE,
                State      = EServiceRequestState.DRAFT,
                Routings   = routings
            };

            return(req);
        }