コード例 #1
0
        public static WorkFlowItem ToDomain(this WorkFlowItemDto item, WorkFlowItem originalItem = null)
        {
            if (originalItem != null && originalItem.Id == item.Id)
            {
                originalItem.Json       = JsonConvert.SerializeObject(item.Obj);
                originalItem.Type       = item.Type.Replace("Dto", "");
                originalItem.ParentType = item.ParentType.Replace("Dto", "");
                originalItem.ParentId   = item.ParentId;
                originalItem.API        = item.API;
                originalItem.ObjId      = item.ObjId;
                originalItem.ApprovalStatus
                    = (ApprovalStatus)Enum.Parse(typeof(ApprovalStatus), item.ApprovalStatus.ToString(), true);

                ((IDataDto)item).ToDomain((IData)originalItem);
                return(originalItem);
            }

            var data = new WorkFlowItem
            {
                Json       = JsonConvert.SerializeObject(item.Obj),
                Type       = item.Type.Replace("Dto", ""),
                ParentType = item.ParentType.Replace("Dto", ""),
                ParentId   = item.ParentId,
                API        = item.API,
                ObjId      = item.ObjId,
                ApprovalStatus
                    = (ApprovalStatus)Enum.Parse(typeof(ApprovalStatus), item.ApprovalStatus.ToString(), true)
            };

            ((IDataDto)item).ToDomain((IData)data);
            return(data);
        }
コード例 #2
0
        public IHttpActionResult PostWithDependentsWithWorkFlow([FromBody] ProductVersionDto value)
        {
            try
            {
                if (value.WorkFlowItemId != 0)
                {
                    Guid?token = _workFlowItemService.GetToken(value.WorkFlowItemId);

                    if (token.HasValue && value.WorkFlowItemToken == token.Value)
                    {
                        if (value.ApprovalStatus == ApprovalStatusDto.Approved)
                        {
                            var entity = AddVersion(value);
                            return(Ok(entity.ToDto()));
                        }
                        else //if (value.ApprovalStatus == ApprovalStatusDto.Pending)
                        {
                            return(Ok(value));
                        }
                    }
                    else
                    {
                        return(BadRequest("Invalid Token"));
                    }
                }
                else if (value.ApprovalStatus == ApprovalStatusDto.Pending)
                {
                    var entity = AddVersion(value);
                    return(Ok(entity.ToDto()));
                }
                else
                {
                    var wFIDto = new WorkFlowItemDto
                    {
                        Obj            = value,
                        API            = "api/ProductVersion/Dependents",
                        ApprovalStatus = ApprovalStatusDto.Pending,
                        Type           = value.GetType().Name.ToString()
                    };

                    _workFlowItemService.Add(wFIDto.ToDomain());
                    value.ApprovalStatus = ApprovalStatusDto.Pending;
                    return(Ok(value));
                }
            }
            catch (Exception ex)
            {
                return(InternalServerError());
            }
        }
コード例 #3
0
 public static WorkFlowItemDto ToDto(this WorkFlowItem item)
 {
     try
     {
         var dto = new WorkFlowItemDto
         {
             Obj        = JsonConvert.DeserializeObject(item.Json, System.Type.GetType(item.Type + "Dto")),
             Type       = item.Type.Insert(item.Type.Length, "Dto"),
             ParentType = item.ParentType?.Insert(item.ParentType.Length, "Dto"),
             ParentId   = item.ParentId,
             API        = item.API,
             ObjId      = item.ObjId,
             ApprovalStatus
                 = (ApprovalStatusDto)Enum.Parse(typeof(ApprovalStatusDto), item.ApprovalStatus.ToString(), true)
         };
         ((IData)item).ToDto((IDataDto)dto);
         return(dto);
     }
     catch (Exception ex)
     {
         return(null);
     }
 }