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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        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);
        }
Esempio n. 6
0
 public abstract bool DeleteContractDoc(as_contractDocs contractDoc);
Esempio n. 7
0
 public abstract int ModifyContractDoc(as_contractDocs contractDoc);