Ejemplo n.º 1
0
        public bool SetEmployees(List <Employee> emplToAdd, List <Employee> emplToUpdate, List <Employee> emplToDelete)
        {
            InfBaseModel infBaseModel = new InfBaseModel(uri);

            infBaseModel.SendingRequest2 += OnSendingRequest2;
            if (emplToAdd != null)
            {
                foreach (var e in emplToAdd)
                {
                    infBaseModel.AddToEmployees(e);
                }
            }
            if (emplToUpdate != null)
            {
                foreach (var e in emplToUpdate)
                {
                    infBaseModel.AttachTo("Employees", e);
                    infBaseModel.UpdateObject(e);
                }
            }
            if (emplToDelete != null)
            {
                foreach (var e in emplToDelete)
                {
                    List <Project> leadProjects = infBaseModel.Projects.Where(p => p.LeaderId == e.Id).ToList();
                    foreach (var p in leadProjects)
                    {
                        infBaseModel.SetLink(p, "Leader", null);
                    }
                    infBaseModel.AttachTo("Employees", e);
                    infBaseModel.DeleteObject(e);
                }
            }
            if (emplToAdd != null && emplToAdd.Count > 0 ||
                emplToUpdate != null && emplToUpdate.Count > 0 ||
                emplToDelete != null && emplToDelete.Count > 0)
            {
                return(infBaseModel.SaveChanges().All(oR => oR.Error == null));
            }
            else
            {
                return(false);
            }
        }