public string Ticket(ViewModel viewmodel) { dynamic model = viewmodel; int? id = model.GetId(); if (id.HasValue == false) { return GetAll(); } if (DataBase.ContainsKey(id.Value)) { return DataBase[id.Value].ToJson(); } return null; }
public string Ticket(ViewModel viewmodel, FormCollection data) { dynamic model = viewmodel; int? id = model.GetId(); if (id.HasValue == false && DataBase.Count > 0) { id = DataBase.Count + 1; } if (id.HasValue == false ) { id = 1; } model.id = id.Value; DataBase[id.Value] = model; return (new { id = id.Value }).ToJson(); }
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext) { dynamic view_model = new ViewModel(); Action<string> TrySetValue = (field) => { var value = bindingContext.ValueProvider.GetValue(field); if ( value.IsNotNull() ) { view_model.SetValue(field, value.RawValue); } }; TrySetValue("id"); controllerContext.RequestContext.HttpContext.Request .QueryString.AllKeys.ToList().ForEach(x => TrySetValue(x)); controllerContext.RequestContext.HttpContext.Request .Form.AllKeys.ToList().ForEach(x => TrySetValue(x)); var request = controllerContext.RequestContext.HttpContext.Request; if( request.IsAjaxRequest() ) { try { byte[] bytes = new byte[request.TotalBytes]; var original_position = request.InputStream.Position; request.InputStream.Position = 0; request.InputStream.Read(bytes, 0, request.TotalBytes); request.InputStream.Position = original_position; string data = Encoding.UTF8.GetString(bytes); JavaScriptSerializer serializer = new JavaScriptSerializer(); var dictionary = serializer.Deserialize<Dictionary<string, object>>(data); dictionary.Keys.ToList().ForEach(x => TrySetValue( x )); } catch{} } return view_model; }