Exemplo n.º 1
0
        public ActionResult Results(SearchAddModel m)
        {
            CurrentDatabase.SetNoLock();
            ModelState.Clear();
            m.OnlineRegTypeSearch = Util2.OnlineRegTypeSearchAdd;

            if (m.ShowLimitedSearch)
            {
                if (string.IsNullOrWhiteSpace(m.FirstName))
                {
                    ModelState.AddModelError("FirstName", "First name is required");
                }

                if (string.IsNullOrWhiteSpace(m.LastName))
                {
                    ModelState.AddModelError("LastName", "Last name is required");
                }

                if (string.IsNullOrWhiteSpace(m.Email))
                {
                    ModelState.AddModelError("Email", "Email is required");
                }

                if (!ModelState.IsValid)
                {
                    return(View("SearchPerson", m));
                }
            }

            if (m.Count() == 0 && m.ShowLimitedSearch)
            {
                NewPerson(0, m);
                m.PendingList[0].FirstName    = m.FirstName;
                m.PendingList[0].LastName     = m.LastName;
                m.PendingList[0].EmailAddress = m.Email;
                return(View("NewPerson", m));
            }

            if (m.Count() == 1 && m.ShowLimitedSearch)
            {
                m.AddExisting(m.ViewList().First().PeopleId);
            }

            return(View(m));
        }
Exemplo n.º 2
0
        public ActionResult Update(int id)
        {
            var m = new Models.BundleModel(id, CurrentDatabase);

            UpdateModel(m);
            UpdateModel(m.Bundle, "Bundle");
            var q = from d in CurrentDatabase.BundleDetails
                    where d.BundleHeaderId == m.Bundle.BundleHeaderId
                    select d.Contribution;
            var dt = q.Select(cc => cc.ContributionDate).FirstOrDefault();

            if (m.Bundle.ContributionDateChanged && q.All(cc => cc.ContributionDate == dt))
            {
                foreach (var c in q)
                {
                    c.ContributionDate = m.Bundle.ContributionDate;
                }
            }
            var fid = q.Select(cc => cc.FundId).FirstOrDefault();

            if (m.Bundle.FundIdChanged && q.All(cc => cc.FundId == fid))
            {
                foreach (var c in q)
                {
                    c.FundId = m.Bundle.FundId ?? 1;
                }
            }
            var postingdt = Util.Now;

            if (m.Bundle.BundleStatusIdChanged && m.Bundle.BundleStatusId == BundleStatusCode.Closed)
            {
                foreach (var d in m.Bundle.BundleDetails)
                {
                    d.Contribution.PostingDate = postingdt;
                }
            }
            CurrentDatabase.SubmitChanges();
            if (User.IsInRole("FinanceDataEntry"))
            {
                return(Redirect("/Bundles"));
            }

            m.BundleId = id; // refresh values
            return(View("Display", m));
        }
Exemplo n.º 3
0
        public ActionResult TotalsByFundCustomExport(string id, TotalsByFundModel model)
        {
            var content = CurrentDatabase.ContentOfTypeSql(id);

            if (content == null)
            {
                return(SimpleContent("no content"));
            }

            var connection = CurrentDatabase.ReadonlyConnection();

            connection.Open();
            var queryParameters = model.GetDynamicParameters();

            var s = id.SpaceCamelCase();

            return(connection.ExecuteReader(content, queryParameters, commandTimeout: 1200).ToExcel(s + ".xlsx", fromSql: true));
        }
Exemplo n.º 4
0
        public IEnumerable <SelectListItem> Organizations()
        {
            var orgType = CurrentDatabase.Setting("UX-ContactedOrgType", null);

            var list = CurrentDatabase.Organizations
                       .Where(x => string.IsNullOrEmpty(orgType) || orgType == x.OrganizationType.Description)
                       .OrderBy(r => r.OrganizationName).ToList().Select(x => new SelectListItem
            {
                Value    = x.OrganizationId.ToString(),
                Text     = x.OrganizationName,
                Selected = x.OrganizationId == OrganizationId
            }).ToList();

            list.Insert(0, new SelectListItem {
                Value = "0", Text = "(none)", Selected = true
            });
            return(list);
        }
Exemplo n.º 5
0
        public ActionResult MakeLeaderOfTargetGroup(OrgGroupsModel m)
        {
            var a  = m.List.ToArray();
            var q2 = from om in m.OrgMembers()
                     where a.Contains(om.PeopleId)
                     select om;

            if (m.groupid != null)
            {
                foreach (var om in q2)
                {
                    om.MakeLeaderOfGroup(CurrentDatabase, m.groupid.GetValueOrDefault());
                }
            }

            CurrentDatabase.SubmitChanges();
            return(View("Rows", m));
        }
Exemplo n.º 6
0
        public ActionResult RenameGroup(OrgGroupsModel m)
        {
            if (!m.GroupName.HasValue() || m.groupid == 0)
            {
                return(Content("error: no group name"));
            }

            var group = CurrentDatabase.MemberTags.SingleOrDefault(d => d.Id == m.groupid);

            if (group != null)
            {
                group.Name = m.GroupName;
            }

            CurrentDatabase.SubmitChanges();
            m.GroupName = null;
            return(Redirect("/OrgGroups/Management/" + m.orgid));
        }
Exemplo n.º 7
0
        public ActionResult NewExtraValue(int id, string field, string value, bool multiline)
        {
            var m = new MeetingModel(id, CurrentDatabase);

            try
            {
                var mev = new MeetingExtra {
                    MeetingId = id, Field = field, Data = value, DataType = multiline ? "text" : null
                };
                CurrentDatabase.MeetingExtras.InsertOnSubmit(mev);
                CurrentDatabase.SubmitChanges();
            }
            catch (Exception ex)
            {
                return(Content("error: " + ex.Message));
            }
            return(View("ExtrasGrid", m.meeting));
        }
Exemplo n.º 8
0
        public ActionResult Update(int id, string text)
        {
            var org = CurrentDatabase.LoadOrganizationById(id);

            try
            {
                var os = CurrentDatabase.CreateRegistrationSettings(text, id);
                org.UpdateRegSetting(os);
            }
            catch (Exception ex)
            {
                TempData["error"]      = ex.Message;
                TempData["regsetting"] = text;
                return(Redirect("/RegSettings/" + id));
            }
            CurrentDatabase.SubmitChanges();
            return(Redirect("/RegSettings/" + id));
        }
Exemplo n.º 9
0
        public ActionResult Delete(string id)
        {
            var role = CurrentDatabase.Roles.SingleOrDefault(m => m.RoleId == id.ToInt());

            if (role == null)
            {
                return(new EmptyResult());
            }

            if (role.UserRoles.Any())
            {
                return(Content("users have that role, not deleted"));
            }

            CurrentDatabase.Roles.DeleteOnSubmit(role);
            CurrentDatabase.SubmitChanges();
            return(new EmptyResult());
        }
Exemplo n.º 10
0
        public ActionResult SharedTags()
        {
            var t = CurrentDatabase.FetchOrCreateTag(Util.SessionId, Util.UserPeopleId, DbUtil.TagTypeId_AddSelected);

            CurrentDatabase.TagPeople.DeleteAllOnSubmit(t.PersonTags);
            CurrentDatabase.SubmitChanges();
            var tag = CurrentDatabase.TagCurrent();

            foreach (var ts in tag.TagShares)
            {
                t.PersonTags.Add(new TagPerson {
                    PeopleId = ts.PeopleId
                });
            }

            CurrentDatabase.SubmitChanges();
            return(Redirect("/SearchUsers"));
        }
Exemplo n.º 11
0
        public ActionResult Delete(int id)
        {
            var widget = CurrentDatabase.DashboardWidgets.SingleOrDefault(w => w.Id == id);

            if (widget == null)
            {
                return(new EmptyResult());
            }

            if (widget.System)
            {
                return(Content("This widget can't be deleted. Try disabling it instead."));
            }
            CurrentDatabase.DashboardWidgetRoles.DeleteAllOnSubmit(widget.DashboardWidgetRoles);
            CurrentDatabase.DashboardWidgets.DeleteOnSubmit(widget);
            CurrentDatabase.SubmitChanges();
            return(Content("success"));
        }
Exemplo n.º 12
0
        public ActionResult Delete2(Guid id, string field, string value)
        {
            var list = CurrentDatabase.PeopleQuery(id).Select(pp => pp.PeopleId).ToList();

            foreach (var pid in list)
            {
                var ev = Person.GetExtraValue(CurrentDatabase, pid, field, value);
                if (ev == null)
                {
                    continue;
                }

                CurrentDatabase.PeopleExtras.DeleteOnSubmit(ev);
                CurrentDatabase.SubmitChanges();
                //DbDispose();
            }
            return(Content("done"));
        }
Exemplo n.º 13
0
        public ActionResult Create(int?id)
        {
            if (!id.HasValue)
            {
                return(Content("need an integer id"));
            }

            if (!CurrentDatabase.MemberTypes.Any(mt => mt.Id == id))
            {
                var m = new MemberType {
                    Id = id.Value
                };
                CurrentDatabase.MemberTypes.InsertOnSubmit(m);
                CurrentDatabase.SubmitChanges();
            }

            return(Redirect($"/MemberType/#{id}"));
        }
Exemplo n.º 14
0
        private void InitExportToolbar(OrganizationModel m)
        {
            ViewBag.oid                 = m.Id;
            ViewBag.queryid             = m.QueryId;
            ViewBag.TagAction           = "/Org/TagAll/" + m.QueryId;
            ViewBag.UnTagAction         = "/Org/UnTagAll/" + m.QueryId;
            ViewBag.AddContact          = "/Org/AddContact/" + m.QueryId;
            ViewBag.AddTasks            = "/Org/AddTasks/" + m.QueryId;
            ViewBag.OrganizationContext = true;
            if (!CurrentDatabase.Organizations.Any(oo => oo.ParentOrgId == m.Id))
            {
                return;
            }

            ViewBag.ParentOrgContext = true;
            ViewBag.leadersqid       = CurrentDatabase.QueryLeadersUnderCurrentOrg().QueryId;
            ViewBag.membersqid       = CurrentDatabase.QueryMembersUnderCurrentOrg().QueryId;
        }
Exemplo n.º 15
0
        public ActionResult MakeNewDiv(int id, string name)
        {
            var d = new Division {
                Name = name, ProgId = id
            };

            d.ProgDivs.Add(new ProgDiv {
                ProgId = id
            });
            CurrentDatabase.Divisions.InsertOnSubmit(d);
            CurrentDatabase.SubmitChanges();
            var m = new OrgSearchModel(CurrentDatabase)
            {
                ProgramId = id, TagDiv = d.Id
            };

            return(View("DivisionIds", m));
        }
Exemplo n.º 16
0
        public ActionResult Create(string id)
        {
            if (!Regex.IsMatch(id, @"\A[A-z0-9-]*\z"))
            {
                return(Message("Invalid characters in setting id"));
            }

            if (!CurrentDatabase.Settings.Any(s => s.Id == id))
            {
                var m = new Setting {
                    Id = id
                };
                CurrentDatabase.Settings.InsertOnSubmit(m);
                CurrentDatabase.SubmitChanges();
                CurrentDatabase.SetSetting(id, null);
            }
            return(Redirect($"/Settings/#{id}"));
        }
Exemplo n.º 17
0
        public ActionResult People(OrgPeopleModel m)
        {
            if (m.FilterIndividuals)
            {
                if (m.NameFilter.HasValue())
                {
                    m.FilterIndividuals = false;
                }
                else if (CurrentDatabase.OrgFilterCheckedCount(m.QueryId) == 0)
                {
                    m.FilterIndividuals = false;
                }
            }

            ViewBag.OrgMemberContext = true;
            ViewBag.orgname          = Session["ActiveOrganization"];
            return(PartialView(m));
        }
Exemplo n.º 18
0
        public ActionResult Index(string id)
        {
            if (!id.HasValue())
            {
                ViewData["MeetingCategories"] = CurrentDatabase.Setting("AttendanceUseMeetingCategory", false);
                return(View("list"));
            }

            if (!User.IsInRole("Admin") && string.Compare(id, "funds", ignoreCase: true) != 0)
            {
                return(Content("must be admin"));
            }

            ViewData["type"]        = id;
            ViewData["description"] = Regex.Replace(id, "([a-z](?=[A-Z])|[A-Z](?=[A-Z][a-z]))", "$1 ");
            var q = CurrentDatabase.ExecuteQuery <Row>("select * from lookup." + id);

            // hide the add button on appropriate views.
            switch (id)
            {
            case "AddressType":
            case "EnvelopeOption":
            case "OrganizationStatus":
            case "BundleStatusTypes":
            case "ContributionStatus":
                ViewData["HideAdd"] = true;
                break;

            case "Gender":
                if (!CurrentDatabase.Setting("AllowNewGenders"))
                {
                    ViewData["HideAdd"] = true;
                }

                break;

            case "OrganizationType":
                ViewData["LinkValue"] = "/Involvement/Index";
                ViewData["LinkText"]  = "Involvement Tab Editor";
                break;
            }

            return(View(q));
        }
Exemplo n.º 19
0
        public ActionResult ForgotUsername(string email)
        {
            TryLoadAlternateShell();
            if (Request.HttpMethod.ToUpper() == "GET")
            {
                return(View());
            }

            if (!Util.ValidEmail(email))
            {
                ModelState.AddModelError("email", "valid email required");
            }

            if (!ModelState.IsValid)
            {
                return(View());
            }

            email = email?.Trim();
            var q = from u in CurrentDatabase.Users
                    where u.Person.EmailAddress == email || u.Person.EmailAddress2 == email
                    where email != "" && email != null
                    select u;

            foreach (var user in q)
            {
                var message = CurrentDatabase.ContentHtml("ForgotUsername", Resource1.AccountController_ForgotUsername);
                message = message.Replace("{name}", user.Name);
                message = message.Replace("{username}", user.Username);
                CurrentDatabase.EmailRedacted(CmsData.DbUtil.AdminMail, user.Person, "touchpoint forgot username", message);
                CurrentDatabase.SubmitChanges();
                CurrentDatabase.EmailRedacted(CmsData.DbUtil.AdminMail,
                                              CMSRoleProvider.provider.GetAdmins(),
                                              $"touchpoint user: {user.Name} forgot username", "no content");
            }
            if (!q.Any())
            {
                CurrentDatabase.EmailRedacted(CmsData.DbUtil.AdminMail,
                                              CMSRoleProvider.provider.GetAdmins(),
                                              $"touchpoint unknown email: {email} forgot username", "no content");
            }

            return(RedirectToAction("RequestUsername"));
        }
Exemplo n.º 20
0
        public ActionResult Save(string _at, string _rt)
        {
            string idAccessToken = "PushpayAccessToken", idRefreshToken = "PushpayRefreshToken";

            //var dbContext = Db;
            //var m = CurrentDatabase.Settings.AsQueryable();
            if (!Regex.IsMatch(idAccessToken, @"\A[A-z0-9-]*\z"))
            {
                return(View("Invalid characters in setting id"));
            }

            if (!CurrentDatabase.Settings.Any(s => s.Id == idAccessToken))
            {
                //Create access token
                var s = new Setting {
                    Id = idAccessToken, SettingX = _at
                };
                CurrentDatabase.Settings.InsertOnSubmit(s);
                CurrentDatabase.SubmitChanges();
                CurrentDatabase.SetSetting(idAccessToken, _at);
            }
            else
            { // Update access token
                CurrentDatabase.SetSetting(idAccessToken, _at);
                CurrentDatabase.SubmitChanges();
                DbUtil.LogActivity($"Edit Setting {idAccessToken} to {_at}", userId: Util.UserId);
            }
            if (!CurrentDatabase.Settings.Any(s => s.Id == idRefreshToken))
            { //Create refresh token
                var s = new Setting {
                    Id = idRefreshToken, SettingX = _rt
                };
                CurrentDatabase.Settings.InsertOnSubmit(s);
                CurrentDatabase.SubmitChanges();
                CurrentDatabase.SetSetting(idRefreshToken, _rt);
            }
            else
            { // Update refresh token
                CurrentDatabase.SetSetting(idRefreshToken, _rt);
                CurrentDatabase.SubmitChanges();
                DbUtil.LogActivity($"Edit Setting {idRefreshToken} to {_rt}", userId: Util.UserId);
            }
            return(RedirectToAction("Finish"));
        }
Exemplo n.º 21
0
        private void SendAllConfirmations(string message)
        {
            CurrentDatabase.SetCurrentOrgId(org.OrganizationId);
            var subject = GetSubject();
            var amtpaid = Transaction.Amt ?? 0;

            var firstPerson = List[0].person;

            if (user != null)
            {
                firstPerson = user;
            }

            var notifyIds = GetNotifyIds();

            if (subject != "DO NOT SEND")
            {
                CurrentDatabase.Email(notifyIds[0].FromEmail, firstPerson, listMailAddress, subject, message, false);
                Log("SentConfirmations");
            }

            CurrentDatabase.SubmitChanges();
            // notify the staff
            foreach (var p in List)
            {
                var messageNotice = UsedAdminsForNotify
                    ? @"<span style='color:red'>THERE ARE NO NOTIFY IDS ON THIS REGISTRATION!!</span><br/>
<a href='https://docs.touchpointsoftware.com/OnlineRegistration/MessagesSettings.html'>see documentation</a><br/><br/>"
                    : "";

                var detailSection = GetDetailsSection();
                if (ValidateEmailRecipientRegistrant(p.person.Name, detailSection))
                {
                    CurrentDatabase.Email(Util.PickFirst(p.person.FromEmail, notifyIds[0].FromEmail), notifyIds, Header,
                                          $@"{messageNotice}{p.person.Name} has registered for {Header}<br/>{detailSection}<hr>");
                    Log("SentConfirmationsToStaff");
                }
                else
                {
                    CurrentDatabase.LogActivity($"Person ({p.person.Name}) is different from the registrant in the email body. " +
                                                $"The email was not sent.");
                }
            }
        }
Exemplo n.º 22
0
        public void UpdateDatum(bool completed = false, bool abandoned = false)
        {
            if (DatumId.HasValue)
            {
                Datum = CurrentDatabase.RegistrationDatas.Single(dd => dd.Id == DatumId);
                Datum.UserPeopleId = UserPeopleId;
            }
            else
            {
                // Don't create a new Datum if there is no data yet.
                if (List.Count == 0)
                {
                    return;
                }

                var p = FirstRegistrant;
                if (List.Count > 0 && !p.FirstName.HasValue() && !p.LastName.HasValue() && p.EmailAddress.HasValue())
                {
                    return;
                }

                Datum = new RegistrationDatum
                {
                    OrganizationId = masterorgid ?? _orgid,
                    UserPeopleId   = UserPeopleId,
                    Stamp          = Util.Now
                };
                CurrentDatabase.RegistrationDatas.InsertOnSubmit(Datum);
                CurrentDatabase.SubmitChanges();
                DatumId = Datum.Id;
            }
            Datum.Data = Util.Serialize <OnlineRegModel>(this);
            if (completed)
            {
                Datum.Completed = true;
            }

            if (abandoned)
            {
                Datum.Abandoned = true;
            }
            CurrentDatabase.SubmitChanges();
        }
Exemplo n.º 23
0
        private string ExternalLink(string setting)
        {
            var url = setting;

            if (setting.Contains("{token}"))
            {
                var expirationWindow = CurrentDatabase.Setting("OTLTokenExpirationMinutes", "5").ToInt();
                var otl = new OneTimeLink
                {
                    Id          = Guid.NewGuid(),
                    Querystring = Util.UserPeopleId.ToString(),
                    Expires     = DateTime.Now.AddMinutes(expirationWindow)
                };
                CurrentDatabase.OneTimeLinks.InsertOnSubmit(otl);
                CurrentDatabase.SubmitChanges();
                url = url.Replace("{token}", otl.Id.ToCode());
            }
            return(url);
        }
Exemplo n.º 24
0
        public ActionResult TransferGiving(int id)
        {
            if (!User.InAnyRole("Admin", "Finance"))
            {
                return(new HttpUnauthorizedResult());
            }

            var person = CurrentDatabase.People.SingleOrDefault(p => p.PeopleId == id && p.DeceasedDate != null);

            if (person == null)
            {
                return(new HttpNotFoundResult());
            }

            var count   = CurrentDatabase.ExecuteCommand("UPDATE dbo.Contribution SET PeopleId={1} WHERE PeopleId={0}", person.PeopleId, person.Family.HeadOfHouseholdId);
            var message = count == 1 ? $"1 giving record was transferred successfully." : $"{count} giving records were transferred successfully.";

            return(Json(new { status = "OK", message }));
        }
Exemplo n.º 25
0
        public ActionResult ConfirmSubscriptions(ManageSubsModel m)
        {
            m.UpdateSubscriptions();

            var Staff = CurrentDatabase.StaffPeopleForOrg(m.masterorgid);

            var msg     = CurrentDatabase.ContentHtml("ConfirmSubscriptions", Resource1.ConfirmSubscriptions);
            var orgname = m.Description();

            msg = msg.Replace("{org}", orgname).Replace("{details}", m.Summary);
            CurrentDatabase.Email(Staff.First().FromEmail, m.person, "Subscription Confirmation", msg);

            CurrentDatabase.Email(m.person.FromEmail, Staff, "Subscriptions managed",
                                  $@"{m.person.Name} managed subscriptions to {m.Description()}<br/>{m.Summary}");

            SetHeaders(m.masterorgid);
            m.Log("Confirm");
            return(View("ManageSubscriptions/Confirm", m));
        }
Exemplo n.º 26
0
        public ActionResult Application(int orgid, int peopleid, string content)
        {
#if DEBUG2
            var c            = System.IO.File.ReadAllText(Server.MapPath("/Application.html"));
            var replacements = new EmailReplacements(CurrentDatabase, c, null);
#else
            var c = CurrentDatabase.Content(content);
            if (c == null)
            {
                return(Message("no content at " + content));
            }

            var replacements = new EmailReplacements(CurrentDatabase, c.Body, null);
#endif
            var p = CurrentDatabase.LoadPersonById(peopleid);
            CurrentDatabase.SetCurrentOrgId(orgid);
            ViewBag.html = replacements.DoReplacements(CurrentDatabase, p);
            return(View());
        }
Exemplo n.º 27
0
        public ActionResult ResetTips()
        {
            CurrentDatabase.ExecuteCommand("DELETE dbo.Preferences WHERE Preference LIKE 'hide-tip-%' AND UserId = {0}",
                                           Util.UserId);
            var d    = Session["preferences"] as Dictionary <string, string>;
            var keys = d.Keys.Where(kk => kk.StartsWith("hide-tip-")).ToList();

            foreach (var k in keys)
            {
                d.Remove(k);
            }

            if (Request.UrlReferrer != null)
            {
                return(Redirect(Request.UrlReferrer.ToString()));
            }

            return(Redirect("/"));
        }
Exemplo n.º 28
0
        private ActionResult ErrorResult(OnlineRegModel m, Exception ex, string errorDisplay)
        {
            // ReSharper disable once EmptyGeneralCatchClause
            try
            {
                m.UpdateDatum();
            }
            catch
            {
            }

            var ex2 = new Exception($"{errorDisplay}, {CurrentDatabase.ServerLink("/OnlineReg/RegPeople/") + m.DatumId}", ex);

            ErrorSignal.FromCurrentContext().Raise(ex2);
            m.Log(ex2.Message);
            TempData["error"] = errorDisplay;
            TempData["stack"] = ex.StackTrace;
            return(Content("/Error/"));
        }
Exemplo n.º 29
0
        public ActionResult RunScript(string name, string parameter = null, string title = null)
        {
            var content = CurrentDatabase.ContentOfTypeSql(name);

            if (content == null)
            {
                return(Content("no content"));
            }

            var cs = User.IsInRole("Finance")
                ? Util.ConnectionStringReadOnlyFinance
                : Util.ConnectionStringReadOnly;
            var cn = new SqlConnection(cs);

            cn.Open();
            var d = Request.QueryString.AllKeys.ToDictionary(key => key, key => Request.QueryString[key]);
            var p = new DynamicParameters();

            foreach (var kv in d)
            {
                p.Add("@" + kv.Key, kv.Value);
            }

            string script = ScriptModel.RunScriptSql(parameter, content, p, ViewBag);

            if (script.StartsWith("Not Authorized"))
            {
                return(Message(script));
            }

            ViewBag.Report = name;
            ViewBag.Name   = title ?? $"{name.SpaceCamelCase()} {parameter}";
            if (script.Contains("pagebreak"))
            {
                ViewBag.report = PythonModel.PageBreakTables(CurrentDatabase, script, p);
                return(View("RunScriptPageBreaks"));
            }
            ViewBag.Url = Request.Url?.PathAndQuery;
            var rd = cn.ExecuteReader(script, p, commandTimeout: 1200);

            ViewBag.ExcelUrl = Request.Url?.AbsoluteUri.Replace("RunScript/", "RunScriptExcel/");
            return(View(rd));
        }
Exemplo n.º 30
0
        public ActionResult SaveSettings(string data)
        {
            if (!Auth())
            {
                return(CheckInMessage.createErrorReturn("Authentication failed, please try again", CheckInMessage.API_ERROR_INVALID_CREDENTIALS));
            }

            CheckInMessage       dataIn = CheckInMessage.createFromString(data);
            CheckInSettingsEntry entry  = JsonConvert.DeserializeObject <CheckInSettingsEntry>(dataIn.data);

            CheckInSetting setting = (from e in CurrentDatabase.CheckInSettings
                                      where e.Name == entry.name
                                      select e).SingleOrDefault();

            CheckInMessage br = new CheckInMessage();

            if (setting == null)
            {
                setting = new CheckInSetting
                {
                    Name     = entry.name,
                    Settings = entry.settings
                };

                CurrentDatabase.CheckInSettings.InsertOnSubmit(setting);

                br.data = "Settings saved";
            }
            else
            {
                setting.Settings = entry.settings;

                br.data = "Settings updated";
            }

            CurrentDatabase.SubmitChanges();

            br.setNoError();
            br.id    = setting.Id;
            br.count = 1;

            return(br);
        }