コード例 #1
0
        public ActionResult AddStaffClause(StaffFilterClauseModel m)
        {
            if (!m.BuildingInclude & !m.EmployeeTypeInclude & !m.JobTitleInclude & !m.StatusInclude & !m.StaffIdInclude & !m.LastNameInclude)
                ModelState.AddModelError("", "Please include at least one field in the filter");

            MemberFilter f = null;

            try
            {
                f = DbContext.MemberFilters.First(x => x.FilterId.Equals(m.FilterId));
            }
            catch
            {
                ModelState.AddModelError("", "Invalid filter id");
            }

            int count = DbContext.StaffFilterClauses.Where(x => x.FilterId.Equals(m.FilterId)).Count();

            bool hasErrors = ViewData.ModelState.Values.Any(x => x.Errors.Count > 1);
            List<ModelState> errors = ViewData.ModelState.Values.Where(x => x.Errors.Count() > 0).ToList();

            if (ModelState.IsValid)
            {
                try
                {
                    StaffFilterClause c = new StaffFilterClause();

                    AnvilEntity e = new AnvilEntity(m);
                    e.CopyTo(c);
                    c.StaffFilterClauseId = Guid.NewGuid();
                    c.SortIndex = count;
                    DbContext.StaffFilterClauses.Add(c);
                    DbContext.SaveChanges();
                }
                catch (Exception ex)
                {
                    return View("~/Views/Shared/Error.cshtml", new AnvilExceptionModel(ex, "Create Staff Clause", "My", "Contacts", "EditStaffFilter"));
                }
            }
            else
            {
                AnvilExceptionCollector ec = new AnvilExceptionCollector("The staff filter clause could not be validated");
                foreach (ModelState ms in errors)
                {
                    foreach (var x in ms.Errors)
                    {
                        ec.Add(x.ErrorMessage);
                    }
                }

                AnvilExceptionModel em = new AnvilExceptionModel(ec.ToException(), "Create Staff Filter Clause", null, null, null);

                MemberFilterModel fm = new MemberFilterModel(f);

                fm.Exception = em;

                return View("EditFilter", fm);
            }

            return RedirectToAction("EditFilter", new { id = m.FilterId });
        }
コード例 #2
0
        public List<StudentRecord> Execute()
        {
            DynamicQueryStatement dqs = ToDynamicQueryStatement();

            try
            {
                StudentsContext context = new StudentsContext();

                List<StudentRecord> students = context.StudentRecords.Where(dqs.Query, dqs.Parms)
                    .OrderBy(x => x.LastName + x.FirstName + x.MiddleInitial)
                    .ToList();

                return students;
            }
            catch (Exception ex)
            {
                AnvilExceptionCollector ec = new AnvilExceptionCollector("Could not get students from database");
                ec.Add(ex);
                ec.Add(dqs.Query);
                throw ec.ToException();

            }
        }
コード例 #3
0
ファイル: ImportFileTSV.cs プロジェクト: LCPS/LCPS-NwUsers
        public void ParseItems(StreamReader reader)
        {
            this.Record();

            int index = 0;

            ItemType = System.Type.GetType(FullAssemblyTypeName);

            while (!reader.EndOfStream)
            {
                string l = reader.ReadLine();
                if (l == null)
                    break;

                if (index == 0)
                {
                    try
                    {
                        FieldNames = l.Split(Delimiter.ToCharArray()[0]);
                        index++;
                    }
                    catch (Exception ex)
                    {
                        AnvilExceptionCollector ec = new AnvilExceptionCollector(ex);
                        ec.Insert(0, "Could not parse the columns from the first line");
                        throw ec.ToException();
                    }
                }
                else
                {
                    if (l.Contains("CONSULT"))
                    {
                        int x = 0;
                        x++;
                    }

                    object sourceItem = null;

                    try
                    {
                        sourceItem = ParseLine(l);
                    }
                    catch (Exception ex)
                    {
                        ImportItem i = new ImportItem()
                        {
                            ImportItemId = Guid.NewGuid(),
                            SessionId = SessionId,
                            Description = l,
                            EntityStatus = ImportEntityStatus.Error,
                            EntryDate = DateTime.Now,
                            LineIndex = index - 1,
                            Comment = string.Join("\n", (new Anvil.v2015.v001.Domain.Exceptions.AnvilExceptionCollector(ex)).ToArray())
                        };

                        try
                        {
                            db.ImportItems.Add(i);
                            db.SaveChanges();
                        }
                        catch (Exception ex2)
                        {
                            AnvilExceptionCollector iEx = new AnvilExceptionCollector(ex2);
                            throw iEx.ToException();
                        }
                    }

                    index++;

                    if (sourceItem != null)
                    {
                        IImportStatus iis = sourceItem as IImportStatus;
                        if (iis == null)
                            throw new Exception("Parse import file failed. The items must implement IImportStatus");

                        IImportEntity iie = sourceItem as IImportEntity;

                        if (iie == null)
                            throw new Exception("Parse import file failed. The items must implement IImportEntity");

                        try
                        {
                            iis.LineIndex = index - 1;
                            iis.ImportItemId = Guid.NewGuid();
                            iis.SessionId = this.SessionId;
                            iis.EntryDate = DateTime.Now;
                            Byte[] _bytes = SerializeItem(sourceItem);
                            iis.SerializedData = _bytes;
                            iis.SourceItem = sourceItem;
                        }
                        catch (Exception ex)
                        {
                            AnvilExceptionCollector ec = new AnvilExceptionCollector(ex);
                            ec.Insert(0, string.Format("Could not serialize item at index {0}", index.ToString()));
                            ec.Insert(0, l);
                            throw ec.ToException();
                        }

                        try
                        {
                            try
                            {
                                iis.Validate();
                            }
                            catch (Exception ex)
                            {
                                AnvilExceptionCollector ec = new AnvilExceptionCollector(ex);
                                iis.Comment = string.Join("\n", ec.ToArray());
                                iis.EntityStatus = ImportEntityStatus.Error;
                            }

                            if (iis.EntityStatus == ImportEntityStatus.Error)
                                goto completesync;

                            if (iie.TargetExists())
                            {
                                if (UpdateIfExists)
                                {
                                    if (iie.IsSyncJustified())
                                        iis.EntityStatus = ImportEntityStatus.Update;
                                    else
                                        iis.EntityStatus = ImportEntityStatus.None;
                                }
                                else
                                    iis.EntityStatus = ImportEntityStatus.Ignore;
                            }
                            else
                            {
                                if (AddIfNotExist)
                                    iis.EntityStatus = ImportEntityStatus.Create;
                                else
                                    iis.EntityStatus = ImportEntityStatus.Ignore;
                            }
                        }

                        catch (Exception ex)
                        {
                            throw new Exception("Could not get sync status of this item", ex);
                        }

                    completesync:
                        iis.SerializedData = SerializeItem(iis);
                        iis.Record();

                    }
                }
            }
        }
コード例 #4
0
        public List<HRStaffRecord> Execute()
        {
            DynamicQueryStatement dqs = ToDynamicQueryStatement();

            try
            {
                HRStaffContext context = new HRStaffContext();
                if (Parms.Count() == 0)
                    return new List<HRStaffRecord>();
                else
                    return context.HRStaffRecords
                        .Where(dqs.Query, dqs.Parms)
                        .OrderBy(x => x.LastName + x.FirstName + x.MiddleInitial)
                        .ToList();

            }
            catch (Exception ex)
            {
                AnvilExceptionCollector ec = new AnvilExceptionCollector("Could not get staff records from the database");
                ec.Add(ex);
                ec.Add(dqs.Query);
                throw ec.ToException();
            }
        }
コード例 #5
0
ファイル: ImportFileTSV.cs プロジェクト: LCPS/LCPS-NwUsers
        public static void ValidateItem(object item)
        {
            var context = new ValidationContext(item, serviceProvider: null, items: null);
            var results = new List<ValidationResult>();
            var isValid = Validator.TryValidateObject(item, context, results);

            if (!isValid)
            {
                string[] comments = results.Select(x => x.ErrorMessage).ToArray();
                AnvilExceptionCollector ec = new AnvilExceptionCollector("Validation failed");
                ec.AddRange(comments);
                throw ec.ToException();
            }
        }