Esempio n. 1
0
 public void UpdateModel(Model.UnitDocument model)
 {
     if (model.Title != this.Title)
     {
         model.Title = this.Title;
     }
     if (model.Required != this.Required)
     {
         model.Required = this.Required;
     }
     if (model.SubmitTo != this.SubmitTo)
     {
         model.SubmitTo = this.SubmitTo;
     }
     if (model.Url != this.Url)
     {
         model.Url = this.Url;
     }
     if (model.Order != this.Order)
     {
         model.Order = this.Order;
     }
     if (model.ForMembersYounger != this.ForMembersYounger)
     {
         model.ForMembersYounger = this.ForMembersYounger;
     }
     if (model.ForMembersOlder != this.ForMembersOlder)
     {
         model.ForMembersOlder = this.ForMembersOlder;
     }
 }
        public string SaveDocuments(Guid id, UnitDocument[] data)
        {
            if (!CanEditDocuments(this.permissions, id))
            {
                ThrowAuthError();
            }

            Data.SarUnit unit = db.Units.Include("Documents").Single(f => f.Id == id);

            var existingDocuments = db.UnitDocuments.Where(f => f.Unit.Id == id).ToDictionary(f => f.Id, f => f);

            List <UnitDocument> desiredDocuments = new List <UnitDocument>(data);

            foreach (var document in desiredDocuments)
            {
                Data.UnitDocument unitDocument;
                if (existingDocuments.TryGetValue(document.Id, out unitDocument))
                {
                    existingDocuments.Remove(document.Id);
                }

                if (string.IsNullOrWhiteSpace(document.Title))
                {
                    // If there's no name, delete it.
                    if (unitDocument != null)
                    {
                        unit.Documents.Remove(unitDocument);
                    }
                    continue;
                }

                if (string.IsNullOrWhiteSpace(document.Url))
                {
                    return(string.Format("{0}'s url is blank", document.Title));
                }

                if (unitDocument == null)
                {
                    unitDocument = new Data.UnitDocument()
                    {
                        Type = Data.UnitDocumentType.Application
                    };
                    unit.Documents.Add(unitDocument);
                }

                document.UpdateModel(unitDocument);
            }

            foreach (var leftover in existingDocuments.Values)
            {
                unit.Documents.Remove(leftover);
            }

            db.SaveChanges();

            return("OK");
        }
Esempio n. 3
0
        public string SaveDocuments(Guid id, UnitDocument[] data)
        {
            if (!CanEditDocuments(Permissions, id))
            ThrowAuthError();

              Model.SarUnit unit = db.Units.Include("Documents").Single(f => f.Id == id);

              var existingDocuments = db.UnitDocuments.Where(f => f.Unit.Id == id).ToDictionary(f => f.Id, f => f);

              List<UnitDocument> desiredDocuments = new List<UnitDocument>(data);
              foreach (var document in desiredDocuments)
              {
            Model.UnitDocument unitDocument;
            if (existingDocuments.TryGetValue(document.Id, out unitDocument))
            {
              existingDocuments.Remove(document.Id);
            }

            if (string.IsNullOrWhiteSpace(document.Title))
            {
              // If there's no name, delete it.
              if (unitDocument != null)
              {
            unit.Documents.Remove(unitDocument);
              }
              continue;
            }

            if (string.IsNullOrWhiteSpace(document.Url))
              return string.Format("{0}'s url is blank", document.Title);

            if (unitDocument == null)
            {
              unitDocument = new Model.UnitDocument()
              {
            Type = Model.UnitDocumentType.Application
              };
              unit.Documents.Add(unitDocument);
            }

            document.UpdateModel(unitDocument);
              }

              foreach (var leftover in existingDocuments.Values)
              {
            unit.Documents.Remove(leftover);
              }

              db.SaveChanges();

              return "OK";
        }