private string CreateContractorInfo(ContractorQualification cq, out string contractorID)
 {
     contractorID = string.Empty;
     Console.WriteLine("Save:" + DateTime.Now.ToString());
     try
     {
         var Contractors = Db.ContractorQualifications.Where(c => c.ContractorName == cq.ContractorName.ToUpper() && c.isvalid == 1).ToList();
         if (Contractors.Count <= 0)
         {
             string type = "Contractor";
             cq.ContractorID    = gate.SelectScalar <string>("select dbo.fnContractorEmployeeID(@typeID)", new object[] { type });
             cq.ContractorName  = cq.ContractorName.ToUpper();
             cq.Stamp           = DateTime.Now;
             cq.Status          = "N";
             cq.ContractorFile  = cq.ContractorFile;
             cq.EmailContractor = cq.EmailContractor;
             Db.ContractorQualifications.Add(cq);
         }
         else
         {
             return(string.Format("{0} is exsit", cq.ContractorName));
         }
         Db.SaveChanges();
         JsonObject json = new JsonObject();
         json["contractorID"] = cq.ContractorID;
         contractorID         = json.ToString();
         return("");
     }
     catch (Exception e)
     {
         Loger.Error(e);
         return(e.Message + e.StackTrace);
     }
 }
        public IHttpActionResult GetByname(string contractorName)
        {
            try
            {
                var contractorQualification = Db.ContractorQualifications.Where(c => c.ContractorName == contractorName).OrderByDescending(c => c.Stamp).ToList();
                if (contractorQualification.Count > 0)
                {
                    var valid = contractorQualification.FindAll(c => c.isvalid == 1).ToList();
                    if (valid.Count > 1)//两个有效,系统错误--Hai lỗi hệ thống hợp lệ
                    {
                        return(BadRequest(string.Format("{0} Duplicate information, please call managers", contractorName)));
                    }
                    else if (valid.Count == 1)
                    {
                        var contractorQua = Db.ContractorQualifications.Find(contractorQualification[0].ContractorID);

                        return(Ok(contractorQua));
                    }
                    var newcq = contractorQualification[0];
                    // newcq.QualificationFiles = Db.ContractorQualificationFiles.Where(c => c.EmployerId == newcq.ContractorID).ToList();
                    // newcq.ContractorID = "";

                    //newcq.Status = "";
                    ///Console.WriteLine(newcq.QualificationFiles.Count);
                    //   newcq.QualificationFiles = newcq.QualificationFiles;
                    // newcq.isvalid = 0;

                    return(Ok(newcq));
                }
                var cq = new ContractorQualification
                {
                    ContractorName = contractorName
                };
                return(Ok(cq));
            }
            catch (Exception e)
            {
                Loger.Error(e);
                return(BadRequest(e.Message + e.StackTrace));
            }
        }
        public IHttpActionResult Save(ContractorQualification cq)
        {
            if (string.IsNullOrEmpty(cq.ContractorID))
            {
                string contractorID = "";
                string errmsg       = CreateContractorInfo(cq, out contractorID);
                if (string.IsNullOrEmpty(errmsg))
                {
                    var        response = Request.CreateResponse(HttpStatusCode.OK);
                    JsonObject json     = new JsonObject();
                    json["contractorID"] = contractorID;
                    return(Ok(json));
                }
                else
                {
                    return(BadRequest(errmsg));
                }
            }
            else
            {
                string contractorID = cq.ContractorID;
                string errmsg       = UpdateContractorInfo(cq, out contractorID);
                if (string.IsNullOrEmpty(errmsg))
                {
                    var        response = Request.CreateResponse(HttpStatusCode.OK);
                    JsonObject json     = new JsonObject();
                    json["contractorID"] = contractorID;

                    return(Ok(json));
                }
                else
                {
                    return(BadRequest(errmsg));
                }
            }
        }
        private string UpdateContractorInfo(ContractorQualification cq, out string contractorID)
        {
            contractorID = cq.ContractorID.ToString();
            try
            {
                if (!string.IsNullOrEmpty(cq.ContractorID.ToString()))
                {
                    var contractorQualification = Db.ContractorQualifications.Where(c => c.ContractorName == cq.ContractorName && c.isvalid == 1).ToList();
                    if (contractorQualification.Count >= 1)
                    {
                        if (contractorQualification.Count == 1)
                        {
                            if (contractorID != contractorQualification[0].ContractorID)
                            {
                                return("ContractorID is being created,ContractorID  isn't the same!");
                            }
                        }
                        else
                        {
                            return("ContractorID  already exists");
                        }
                    }
                    var _ContractorQualification = Db.ContractorQualifications.Find(cq.ContractorID);
                    if (_ContractorQualification != null)
                    {
                        _ContractorQualification.ContractorID        = cq.ContractorID;
                        _ContractorQualification.ContractorName      = cq.ContractorName.ToUpper();
                        _ContractorQualification.CType               = cq.CType;
                        _ContractorQualification.isvalid             = cq.isvalid;
                        _ContractorQualification.Remark              = cq.Remark;
                        _ContractorQualification.DepartmentID        = cq.DepartmentID;
                        _ContractorQualification.UserID              = cq.UserID;
                        _ContractorQualification.AccDate             = cq.AccDate;
                        _ContractorQualification.Status              = cq.Status;
                        _ContractorQualification.Rcode               = cq.Rcode;
                        _ContractorQualification.Type                = cq.Type;
                        _ContractorQualification.Stamp               = DateTime.Now;
                        _ContractorQualification.Region              = cq.Region;
                        _ContractorQualification.StartDate           = cq.StartDate;
                        _ContractorQualification.EndDate             = cq.EndDate;
                        _ContractorQualification.ContractorByEmloyee = cq.ContractorByEmloyee;
                        _ContractorQualification.InternalNumber      = cq.InternalNumber;
                        _ContractorQualification.Email               = cq.Email;
                        _ContractorQualification.ContractorFile      = cq.ContractorFile;
                        _ContractorQualification.EmailContractor     = cq.EmailContractor;

                        Db.Entry(_ContractorQualification).State = EntityState.Modified;
                    }
                    else
                    {
                        return("ContractorID is not exist!");
                    }
                    Db.SaveChanges();
                    JsonObject json = new JsonObject();
                    json["contractorID"] = cq.ContractorID;
                    contractorID         = json.ToString();
                    return("");
                }
                else
                {
                    return("ContractorID is Null!");
                }
            }
            catch (Exception e)
            {
                Loger.Error(e);
                return(e.Message + e.StackTrace);
            }
        }