public override bool DeleteContractDoc(as_contractDocs contractDoc) { if (_contractFiles.FirstOrDefault(file => file.contractDocID == contractDoc.id) is as_contractFiles linkedFile) { _contractFiles.Remove(linkedFile); } return(_contractDocs.Remove(contractDoc)); }
private as_docBasics DocBasics(as_contractDocs doc) { var res = _docBasics.FirstOrDefault(basic => basic.id == doc.docBasicID); if (res == null) { return(res); } res.as_contragent = _contragents.FirstOrDefault(ctrg => ctrg.id == res.contragentID); return(res); }
public override bool DeleteContractDoc(as_contractDocs contractDoc) { var res = Delete(contractDoc); if (res) { var others = GetItems((SqlConnection conn) => conn.GetList <as_contractDocs>().AsQueryable()) .Cast <as_contractDocs>() .Count(doc => doc.docBasicID == contractDoc.docBasicID); if (others == 0) { Delete(contractDoc.as_docBasic); } } return(res); }
public override int ModifyContractDoc(as_contractDocs contractDoc) { int id = AddOrModify(_contractDocs, contractDoc); var existingBasic = _docBasics.FirstOrDefault(basic => basic.date == contractDoc.as_docBasic?.date && basic.contragentID == contractDoc.as_docBasic?.contragentID); contractDoc.as_docBasic = existingBasic ?? new as_docBasics() { date = contractDoc.as_docBasic.date, contragentID = contractDoc.as_docBasic.contragentID }; AddOrModify(_docBasics, contractDoc.as_docBasic); contractDoc.as_docBasic.as_contragent = _contragents .Find(c => c.id == contractDoc.as_docBasic.contragentID); contractDoc.as_docType = _docTypes .Find(type => type.id == contractDoc.typeID); contractDoc.as_docStatus = _docStatuses .Find(status => status.id == contractDoc.statusID); if (contractDoc.typeID != 2) { contractDoc.as_contractFile.link = ""; } else if (contractDoc.typeID != 4) { contractDoc.total = null; } if (string.IsNullOrEmpty(contractDoc.as_contractFile.link)) { var removed = _contractFiles.FirstOrDefault(file => file.id == contractDoc.as_contractFile.contractDocID); if (removed != null) { DeleteContractFile(removed); } } else { ModifyContractFile(contractDoc.as_contractFile); contractDoc.as_contractFile.contractDocID = contractDoc.id; } return(id); }
public override int ModifyContractDoc(as_contractDocs contractDoc) { var currentBasic = GetDocBasics().FirstOrDefault(basic => contractDoc.as_docBasic.date == basic.date && contractDoc.as_docBasic.contragentID == basic.contragentID); if (currentBasic != null) { contractDoc.docBasicID = currentBasic.id; } else { contractDoc.docBasicID = GetOrCreate(contractDoc.as_docBasic, (as_docBasics basic) => { basic = contractDoc.as_docBasic; return(basic.id); }); } var res = GetOrCreate(contractDoc, (as_contractDocs toModify) => { var guid = Guid.NewGuid().ToString().Replace("-", null); toModify.code = guid.Substring(0, 10); SetOnesPropValuesToAnother(contractDoc, toModify); return(toModify.id); }); if (string.IsNullOrEmpty(contractDoc.as_contractFile?.link)) { DeleteContractFile(contractDoc.as_contractFile); } else { contractDoc.as_contractFile.contractDocID = contractDoc.id; GetOrCreate(contractDoc.as_contractFile, (as_contractFiles file) => 0); } return(res); }
public abstract bool DeleteContractDoc(as_contractDocs contractDoc);
public abstract int ModifyContractDoc(as_contractDocs contractDoc);