public JsonResult AddCrossRef(ComponentCrossRefDTO dto)
        {
            ComponentCrossRefDTO result = null;

            try
            {
                var entity = Mapper.Map <tbl_X_ref>(dto);

                if (entity != null &&
                    entity.xref_comp_id != entity.xref_equiv_compid)    // avoid self-ref
                {
                    entity.tbl_comp       = null;
                    entity.tbl_comp_equiv = null;
                    entity.tbl_life_cycle = null;

                    UnitOfWork.TblXRef.Add(entity);
                    UnitOfWork.Save();
                    result = Mapper.Map <ComponentCrossRefDTO>(entity);
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public JsonResult UpdateCrossRef(ComponentCrossRefDTO dto)
        {
            ComponentCrossRefDTO result = null;

            try
            {
                var entity = UnitOfWork.TblXRef.Get(dto.ID);

                if (entity != null)
                {
                    //entity.xref_comp_id = dto.xref_comp_id;
                    //entity.xref_equiv_compid = dto.xref_equiv_compid;
                    entity.xref_FE_priority   = dto.xref_FE_priority;
                    entity.xref_exact         = dto.xref_exact;
                    entity.xref_life_cycle_id = dto.xref_life_cycle_id;
                    entity.xref_notes         = dto.xref_notes;

                    entity.tbl_comp       = null;
                    entity.tbl_comp_equiv = null;
                    entity.tbl_life_cycle = null;

                    UnitOfWork.Save();
                    result = Mapper.Map <ComponentCrossRefDTO>(UnitOfWork.TblXRef.Get(dto.ID));
                }
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
            }
            return(Json(result, JsonRequestBehavior.AllowGet));
        }
        public JsonResult SetCrossRef(ComponentCrossRefDTO dto)
        {
            ComponentCrossRefDTO result = null;

            try
            {
                var entity = UnitOfWork.TblXRef.Get(dto.ID);

                if (entity == null)
                {
                    // create
                    entity                = Mapper.Map <tbl_X_ref>(dto);
                    entity.tbl_comp       = null;
                    entity.tbl_comp_equiv = null;
                    entity.tbl_life_cycle = null;
                    UnitOfWork.TblXRef.Add(entity);
                    UnitOfWork.Save();
                    result = Mapper.Map <ComponentCrossRefDTO>(entity);
                    result.tbl_comp_equiv = Mapper.Map <ComponentDTO>(UnitOfWork.TblComp.Get(entity.xref_equiv_compid));
                }
                else
                {
                    // update
                    entity.xref_exact         = dto.xref_exact;
                    entity.xref_life_cycle_id = dto.xref_life_cycle_id;
                    entity.xref_FE_priority   = dto.xref_FE_priority;
                    entity.xref_notes         = dto.xref_notes;
                    UnitOfWork.Save();
                    result = Mapper.Map <ComponentCrossRefDTO>(entity);
                }
            }
            catch (Exception ex)
            {
                result = null;
                _logger.Error(ex);
            }

            return(Json(result, JsonRequestBehavior.AllowGet));
        }