示例#1
0
        public async Task <IActionResult> SubmitOffenderRestitution([FromBody] OffenderRestitutionFormModel model)
        {
            if (model == null)
            {
                if (ModelState.ErrorCount > 0)
                {
                    var errors = ModelState.Values.SelectMany(v => v.Errors.Select(b => b.ErrorMessage));
                    return(new JsonResult(new { IsSuccess = false, Status = "Restitution Save Error", Message = "Errors in binding: " + string.Join(Environment.NewLine, errors) }));
                }
                else
                {
                    return(new JsonResult(new { IsSuccess = false, Status = "Restitution Save Error", Message = "Error: Model is null." }));
                }
            }

            var t = Task.Run(() => CreateOffenderRestitutionAction(_configuration, model));

            t.Wait();

            var dynamicsResponse = JsonConvert.DeserializeObject <DynamicsResponse>(t.Result);
            var result           = new { IsSuccess = dynamicsResponse.IsSuccess, Status = "Restitution Save", Message = dynamicsResponse.Result };

            return(new JsonResult(result));
        }
示例#2
0
        public static OffenderRestitutionDynamicsModel ToOffenderRestitutionModel(this OffenderRestitutionFormModel model)
        {
            var application = GetApplicationDefaults();

            if (model == null)
            {
                return(null);
            }

            if (model.RestitutionInformation != null)
            {
                //application.Application.vsd_applicantsfirstname = model.RestitutionInformation.victimFirstName;
                //application.Application.vsd_applicantsmiddlename = model.RestitutionInformation.victimMiddleName;
                //application.Application.vsd_applicantslastname = model.RestitutionInformation.victimLastName;
                //if (model.RestitutionInformation.victimBirthDate.HasValue)
                //{
                //    application.Application.vsd_applicantsbirthdate = model.RestitutionInformation.victimBirthDate.Value;
                //}
                //application.Application.vsd_applicantsgendercode = model.RestitutionInformation.victimGender;
                //application.Application.vsd_applicantspreferredmethodofcontact = model.RestitutionInformation.preferredMethodOfContact;
                application.Application.vsd_applicantsprimaryphonenumber   = model.RestitutionInformation.phoneNumber;
                application.Application.vsd_applicantsalternatephonenumber = model.RestitutionInformation.alternatePhoneNumber;
                application.Application.vsd_applicantsemail = model.RestitutionInformation.email;

                if (model.RestitutionInformation.mailingAddress != null)
                {
                    application.Application.vsd_applicantsprimaryaddressline1 = model.RestitutionInformation.mailingAddress.line1;
                    application.Application.vsd_applicantsprimaryaddressline2 = model.RestitutionInformation.mailingAddress.line2;
                    application.Application.vsd_applicantsprimarycity         = model.RestitutionInformation.mailingAddress.city;
                    application.Application.vsd_applicantsprimaryprovince     = model.RestitutionInformation.mailingAddress.province;
                    application.Application.vsd_applicantsprimarypostalcode   = model.RestitutionInformation.mailingAddress.postalCode;
                    application.Application.vsd_applicantsprimarycountry      = model.RestitutionInformation.mailingAddress.country;
                }

                application.Application.vsd_cvap_offenderfirstname  = model.RestitutionInformation.offenderFirstName;
                application.Application.vsd_cvap_offendermiddlename = model.RestitutionInformation.offenderMiddleName;
                application.Application.vsd_cvap_offenderlastname   = model.RestitutionInformation.offenderLastName;
                //application.Application.vsd_cvap_relationshiptooffender = model.RestitutionInformation.offenderRelationship;

                application.Application.vsd_applicantssignature = model.RestitutionInformation.signature; // TODO: where does this come from?
            }

            // TODO: Fix file mapping
            // how does the uploading work? is our array a list of file ids? Look them up and extract appropriate data...
            try
            {
                if (model.DocumentCollectionInformation != null)
                {
                    Documentcollection tempDocumentCollection = new Documentcollection();
                    tempDocumentCollection.body       = model.DocumentCollectionInformation.body;
                    tempDocumentCollection.filename   = model.DocumentCollectionInformation.fileName;
                    application.DocumentCollection    = new Documentcollection[1];
                    application.DocumentCollection[0] = tempDocumentCollection;



                    //application.DocumentCollection[1].body = model.DocumentCollectionInformation.body;
                    //application.DocumentCollection[1].filename = model.DocumentCollectionInformation.fileName;

                    //application.DocumentCollection = model.DocumentCollectionInformation.Select(g => new Documentcollection
                    //{
                    //    body = g.body,
                    //    filename = g.fileName
                    //}).ToArray();
                }
            }
            catch (Exception e)
            {
                string errormessage = e.Message;
            }


            //if (model.RestitutionInformation.courtFiles != null)
            //{
            //    if (model.RestitutionInformation.courtFiles.Count() > 0)
            //    {
            //        application.CourtInfoCollection = model.RestitutionInformation.courtFiles.Select(f => new Courtinfocollection
            //        {
            //            vsd_courtfilenumber = f.courtFileNumber,
            //            vsd_courtlocation = f.courtLocation
            //        }).ToArray();
            //    }
            //}


            // TODO: For some reason when this is moved to OpenShift, it doesn't work.
            // Error Message: System.AggregateException: One or more errors occurred. (Value cannot be null.
            // Parameter name: source) --->System.ArgumentNullException: Value cannot be null.
            // Parameter name: source
            //application.ProviderCollection = model.RestitutionInformation.providerFiles.Select(t => new Providercollection
            //{
            //    vsd_name = "",
            //    vsd_phonenumber = "",
            //    vsd_addressline1 = "",
            //    vsd_addressline2 = "",
            //    vsd_city = "",
            //    vsd_province = "",
            //    vsd_postalcode = "",
            //    vsd_email = "",
            //    vsd_firstname = t.firstName,
            //    vsd_relationship1 = t.relationship,
            //    vsd_country = "",
            //    vsd_lastname = "",
            //    vsd_preferredmethodofcontact = null,
            //    vsd_alternatephonenumber = "",
            //    vsd_middlename = "",
            //}).ToArray();

            return(application);
        }
示例#3
0
        private static async Task <string> CreateOffenderRestitutionAction(IConfiguration configuration, OffenderRestitutionFormModel model)
        {
            HttpClient httpClient = null;

            try
            {
                var offenderRestitution         = model.ToOffenderRestitutionModel();
                JsonSerializerSettings settings = new JsonSerializerSettings();
                settings.NullValueHandling = NullValueHandling.Ignore;
                var offenderRestitutionJson = JsonConvert.SerializeObject(offenderRestitution, settings);
                offenderRestitutionJson = offenderRestitutionJson.Replace("odatatype", "@odata.type");

                var endpointAction = "vsd_CreateRestitutionCase"; // TODO: Is this the same as Victim Restitution???
                //httpClient = GetDynamicsHttpClient(configuration, endpointAction);
                var tuple = await GetDynamicsHttpClientNew(configuration, offenderRestitutionJson, endpointAction);

                //// THIS SHOULD BECOME A DYNAMICS MODEL
                //var dynamicsModel = model; // model.ToDynamicsModel();
                //var invoiceJson = JsonConvert.SerializeObject(dynamicsModel);

                //HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, endpointAction);
                //request.Content = new StringContent(invoiceJson, Encoding.UTF8, "application/json");

                //HttpResponseMessage response = await httpClient.SendAsync(request);

                //if (response.StatusCode == HttpStatusCode.OK)
                //{
                //    var jsonResult = response.Content.ReadAsStringAsync().Result;
                //    return jsonResult;
                //}

                //return response.Content.ReadAsStringAsync().Result;
                string tempResult = tuple.Item1.ToString();

                DynamicsResponse dynamicsResponse = new DynamicsResponse();
                dynamicsResponse.IsSuccess    = (tempResult == "200");// true;
                dynamicsResponse.Result       = tempResult;
                dynamicsResponse.odatacontext = tuple.Item2.ToString();

                return(dynamicsResponse.Result);
            }
            finally
            {
                if (httpClient != null)
                {
                    httpClient.Dispose();
                }
            }
        }