예제 #1
0
        public void Init()
        {
            _fakeApi = Substitute.For <ITCApi>();


            _installations = new List <Installation>
            {
                new Installation()
                {
                    Id       = 1,
                    Name     = "First",
                    Position = new Position()
                    {
                        Id         = 1,
                        Latitude   = 10.1,
                        Longtitude = 50.2
                    },
                    Status = 0
                },
                new Installation()
                {
                    Id       = 2,
                    Name     = "Second",
                    Position = new Position()
                    {
                        Id         = 2,
                        Latitude   = 20.1,
                        Longtitude = 60.2
                    },
                    Status = 1
                },
                new Installation()
                {
                    Id       = 3,
                    Name     = "Third",
                    Position = new Position()
                    {
                        Id         = 3,
                        Latitude   = 30.1,
                        Longtitude = 70.2
                    },
                    Status = 2
                }
            };
            _fakeApi.GetInstallations().Returns(_installations);

            _uut = new CreateCaseModel(_fakeApi);
        }
예제 #2
0
        public async Task <Case> CreateCaseAsync(
            CreateCaseModel createCaseModel,
            [ScopedService] DataContext dataContext,
            [Service] ITopicEventSender topicEventSender)
        {
            var representativeEntity = Representative.Create(createCaseModel.Representative.FullName);
            var clientEntity         = Client.Create(createCaseModel.Client.FullName);

            var caseEntity = Case.Create(
                createCaseModel.Reference,
                createCaseModel.Description,
                representativeEntity,
                clientEntity
                );

            var addedEntity = await dataContext.Case.AddAsync(caseEntity);

            await dataContext.SaveChangesAsync();

            var persistedCase = addedEntity.Entity;
            await topicEventSender.SendAsync(nameof(CaseSubscription.CaseCreatedSubscription), persistedCase);

            return(persistedCase);
        }
        public async Task <IActionResult> CreateCasesAsync([FromBody] CreateCaseModel caseTemplate)
        {
            await _service.CreateAsync(_mapper.Map <Case>(caseTemplate));

            return(Ok());
        }
예제 #4
0
        public void OpprettCaseOgSendEpost(string epost, string caseNavn, string dokumentNavn, string signeringsmetode)
        {
            string[] Invitasjonsemails;

            if (!(epost == null))
            {
                Invitasjonsemails = epost.Split(',');
            }
            else
            {
                return;
            }


            //En CreateCaseModel skal bestå av et dokument, en eller flere brukere og annen info
            CreateCaseModel  model  = new CreateCaseModel();
            List <CaseEvent> events = new List <CaseEvent>();

            events.Add(CaseEvent.SignatureAdded);

            //Påkrevd
            model.Id = Guid.NewGuid();
            model.SendSignRequestEmailToParties = true;
            model.SendFinishEmailToParties      = true;
            model.SendFinishEmailToCreator      = true;
            model.Name          = caseNavn;
            model.NameAlias     = "Alias";
            model.EventCallback = new CaseEventSubscription
            {
                Events = events,
                Url    = "http://158.36.13.131:52817/DBController/WriteNewSignature"
            };

            //Kan gi valg mellom eID signatur eller signbyhand (på mobil). Påkrevd
            if (signeringsmetode == "electronicid")
            {
                model.AllowedSignatureTypes.Add(SignatureType.ElectronicId);
            }
            else
            {
                model.AllowedSignatureTypes.Add(SignatureType.Touch);
            }

            //PartyModel er en samling brukere. Påkrevd.
            //Skal flere brukere signere ett dokument, må denne kodebiten gjentas.
            for (var i = 0; i < Invitasjonsemails.Length - 1; i++)
            {
                model.Parties.Add(new PartyModel
                {
                    Name         = "Undertegnede",
                    EmailAddress = Invitasjonsemails[i]
                });
            }

            //En eller flere dokumenter angis til en Liste med dokumenter
            model.Documents.Add("./Persistence/Dokumenter/" + dokumentNavn);
            model.Metadata.Add("nøkkel", "verdi");

            using (var fileStream = new FileStream("./Persistence/guid.txt", FileMode.Create))
            {
                byte[] data = model.Id.ToByteArray();
                fileStream.Write(data, 0, data.Length);
            }

            string oppretterEmail = User.Claims.Where(c => c.Type == "name").FirstOrDefault().Value;


            //CreateCaseModel objektet sendes til Assently
            client.CreateCase(model);

            //Her blir brukerene evt tilsendt en epost med signaturlink
            //Evt kan også SMS benyttes
            client.SendCase(model.Id);

            //Oppdater antallsignatur teller Auth0
            OppdaterAntallOppdragTeller();

            DBController.DokumentTilDatabase(model.Id, dokumentNavn, Invitasjonsemails.Length,
                                             caseNavn, oppretterEmail);
            DBController.KundeTilDatabase(Invitasjonsemails);
        }