예제 #1
0
        internal string ToJson()
        {
            var di = new DataItem();

            if (String.IsNullOrEmpty(Message))
            {
                Message = "The request is invalid";
            }
            di.Set("Message", Message);
            var ms  = new DataItem();
            var add = false;

            foreach (var item in _errors)
            {
                ms.Set(item.Key, item.Value.ToArray());
                add = true;
            }
            if (add)
            {
                di.Set("ModelState", ms);
            }



            return(di.ToJson());
        }
예제 #2
0
        private static void PerformInsertOrUpdateOrDelete(WebResponse Response, ViewModel vmc, bool allowed, string name, Func <DataItem> action)
        {
            if (!allowed)
            {
                MethodNotAllowed(Response, vmc, name);
                return;
            }


            DataItem r = null;

            try
            {
                r = action();
            }
            catch (NotFoundException)
            {
                vmc.ModelState.ApplyNotFound(Response);

                return;
            }
            catch (Firefly.Box.Data.DataProvider.DatabaseErrorException ex)
            {
                vmc.ModelState.AddError(ex.ErrorType.ToString());
            }
            catch (Exception ex)
            {
                vmc.ModelState.AddError(ex);
            }

            if (!vmc.ModelState.IsValid)
            {
                Response.Write(vmc.ModelState.ToJson());
                Response.StatusCode = 400;
            }
            else if (r != null)
            {
                Response.Write(r.ToJson());
            }
        }